我有一个名为“服务”的模型和另一个名为“许可证”的模型。服务具有许多许可证,许可证属于一个服务。
当我想要返回包括其许可证在内的所有服务时,我目前正在执行以下操作
$services = Auth::user()->services;
foreach($services as $service) {
$service->licenses;
}
这是有效的,但我喜欢有更清洁的东西,因为我经常使用它,有时甚至是非常深的结构。
答案 0 :(得分:1)
如果您只是尝试加载所有相关记录,则可以使用预先加载或延迟预先加载来加载,这两者都接受嵌套关系。
在您的示例中,由于您已经加载了用户,因此可以使用load()
方法来延迟加载相关记录:
Auth::user()->load('services.licenses');
dd(Auth::user());
常规预先加载的工作方式相同:
$user = User::with('services.licenses')->find(Auth::user()->id);
dd($user);