Laravel 将hasMany集合拉入控制器中的结果对象的可读方式
在资源控制器中,我有以下显示功能Laravel 将hasMany集合拉入控制器中的结果对象的可读方式,laravel,eloquent,crud,Laravel,Eloquent,Crud,在资源控制器中,我有以下显示功能 public function show(Invite $invite) { return response($invite->jsonSerialize(), Response::HTTP_CREATED); } invite模型有许多来宾,来宾模型属于invite。标准资源路线。当我查询url时,会得到如下响应: { id":17, "user_id":2, "event_id":1, "name":"Fred
public function show(Invite $invite)
{
return response($invite->jsonSerialize(), Response::HTTP_CREATED);
}
invite模型有许多来宾,来宾模型属于invite。标准资源路线。当我查询url时,会得到如下响应:
{
id":17,
"user_id":2,
"event_id":1,
"name":"Fred Neumann +1",
"called":0,
"emailed":0,
"invited":1,
"max_guests":2,
"created_at":"2019-05-18 21:31:07",
"updated_at":"2019-05-18 21:31:07",
"deleted_at":null
}
现在我还想把邀请信息连同客人一起还给他们。我可以通过修改show函数来实现这一点:
public function show(Invite $invite)
{
// Don't remove this line:
$invite->guests = $invite->guests;
return response($invite->jsonSerialize(), Response::HTTP_CREATED);
}
这很好,但它实际上是否有任何作用并不明显。我可以很容易地看到自己后来无意中删除了它,并破坏了API,因此发表了评论。是否有更具可读性的替代方案?加载
来宾关系:
公共功能展示(Invite$Invite)
{
返回响应($invite->load('guests')->jsonSerialize(),response::HTTP_CREATED);
}