On the Laravel 5.5 文档 https://laravel.com/docs/5.5/eloquent-resources, under 条件关系, 它说
whenLoaded 方法可用于有条件地加载关系
我在我的代码中尝试过
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'roles' => Role::collection($this->whenLoaded('roles')),
'remember_token' => $this->remember_token,
];
}
根据文档,角色键在发送到客户端之前已从资源响应中完全删除,因为关系尚未加载。
如何加载关系?如何确定关系是否已加载?在这种情况下我该如何加载Role
(模型)?
急切加载
Eloquent 可以在查询父模型时“预加载”关系。
$user = App\User::with('roles')->find($id);
延迟预加载
在检索到父模型后立即加载关系
$user->load('roles');
加载缺失的关系
加载关系only当它还没有被加载时
$user->loadMissing('roles');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)