Люмен вернуть отношения, указанные в запросе - PullRequest
0 голосов
/ 03 февраля 2019

Обычно я использую Yii2 для создания остальных API.Прямо сейчас я пытаюсь перестроить API, который у меня уже есть в Yii2, с Lumen для изучения полей.

Например: у меня есть модель Game, которая связана с другими моделями, такими как:

public function homeTeam() {}
public function awayTeam() {}
public function stadium() {}
....

В Yii я могу сделать запрос, например: http://localhost:8000/game/15

, чтобы получить Игру с ID 15. В Lumen я могу сделать то же самое, это нормально.

ВYii, когда я хочу, чтобы поля команды хозяев и выездных команд были в одном запросе, я могу сделать запрос: http://localhost:8000/game/15&expand=homeTeam,awayTeam

, чтобы вы вернули что-то вроде:

{
"id": 15,
"date": "2019-01-01",
"homeTeam": {
    "id": 1,
    "name": "Super Team"
},
"awayTeam": {
    "id": 2,
    "name": "Another Team"
}
}

ДелаетLumen поддерживает что-то в этом роде, или мне придется создавать такую ​​функцию с нуля?

1 Ответ

0 голосов
/ 11 февраля 2019

Эту функцию легко воспроизвести.

$game = Game::query()->where('id', $gameId)->with($expandAsArray)->get();

Вам, разумеется, придется разрешить $expandAsArray из строки запроса и разделить ее на массив.

...