因此,我目前正在尝试从一个数据库表中获取每个条目,并使用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()方法中,该方法返回一个没有with()方法的集合。 这是错误消息:
方法Illuminate \ Database \ Eloquent \ Collection :: with不存在。
我想知道是否有一种简单的方法来做我想做的事情,而我似乎在文档中找不到任何东西,或者在互联网上找不到想要类似东西的人。
答案 0 :(得分:1)
您正在获取的数据是收集后的,而调用方法没有的收集则以这种方式工作,它将从游戏表中获取所有数据。
return GameResource::collection(Game::with('white_user', 'black_user', 'win_user')->get());