在资源控制器内部,我具有以下显示功能。
public function show(Invite $invite)
{
return response($invite->jsonSerialize(), Response::HTTP_CREATED);
}
邀请模型有很多客人,而客人模型属于一个邀请。标准资源路线。当我查询网址时,会收到类似以下的响应:
{
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,因此发表了评论。有更可读的替代方法吗?
答案 0 :(得分:1)
使用lazy eager loading加载guests
关系:
public function show(Invite $invite)
{
return response($invite->load('guests')->jsonSerialize(), Response::HTTP_CREATED);
}