在Laravel 5.5 documentation上,条件关系下,
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
(模型)?
答案 0 :(得分:3)
急切加载
Eloquent可以在您查询父模型时“急切加载”关系。
$user = App\User::with('roles')->find($id);
懒惰加载
在已经检索到父模型后急切加载关系
$user->load('roles');
加载缺失的关系
仅在尚未加载
的情况下加载的关系$user->loadMissing('roles');