Выборка всех записей базы данных с их отношениями, используя Ресурс - PullRequest
0 голосов
/ 29 февраля 2020

Итак, в настоящее время я пытаюсь извлечь каждую запись из одной таблицы базы данных и вернуть их с помощью APIResource. Я хочу также вернуть все отношения этих записей. Вот мой контроллер:

public function all() 
    {

        return GameResource::collection(Game::all()->with('white_user', 'black_user', 'win_user')->get());
    }

И соответствующий ресурс:

public function toArray($request)
    {
        return [
            'GmID' => $this->GmID,
            'White_user' => new UserPublicResource($this->whenLoaded('white_user')),
            'Black_user' => new UserPublicResource($this->whenLoaded('black_user')),
            'Winner' => new UserPublicResource($this->whenLoaded('win_user')),
            'Pgn' => $this->Pgn,
            'StartTime' => $this->StartTime
        ];
    }

Я знаю, что проблема заключается в методе all (), который возвращает коллекцию, которая не имеет с () метод. Вот сообщение об ошибке:

Метод Illuminate \ Database \ Eloquent \ Collection :: with не существует.

Мне интересно, есть ли простой способ сделать то, что я хочу, и я не могу найти что-либо в документах или у кого-нибудь из инте rnet, кто хотел что-то подобное.

1 Ответ

1 голос
/ 29 февраля 2020

, с которым вы звоните после извлечения данных, которые не были собраны, а сбор, которых нет при вызове метода, таким образом, сработает, будет извлекать все данные из игровой таблицы.

return GameResource::collection(Game::with('white_user', 'black_user', 'win_user')->get());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...