Laravel 5.1 > 拆分嵌套延迟加载
Laravel 5.1 > split nested lazy loading
是否可以拆分嵌套的懒加载方式?
我有
$this->user->load('latestConversations.latestMessage.user')
我还想加载分配给 latestConversations 的所有用户,这样就不错了:
$this->user->load('latestConversations.['users', 'latestMessage.user']')
这是一个解决方法
$this->user->load('latestConversations.latestMessage.user')
$this->user->load('latestConversations.users')
但是后来latestConversations被查询了两次。
如果您在关系方法上留下括号,您可以添加任何您想要的查询,然后使用 setRelation()
手动设置关系。我还没有测试过,但像这样的东西应该可以工作:
$latestConversations = $this->user
->latestConversations()
->with('latestMessage.user', 'users')
->get();
$this->user->setRelation('latestConversations', $latestConversations);
// then you should be able to just access it normally:
return $this->user->latestConversations;
是否可以拆分嵌套的懒加载方式?
我有
$this->user->load('latestConversations.latestMessage.user')
我还想加载分配给 latestConversations 的所有用户,这样就不错了:
$this->user->load('latestConversations.['users', 'latestMessage.user']')
这是一个解决方法
$this->user->load('latestConversations.latestMessage.user')
$this->user->load('latestConversations.users')
但是后来latestConversations被查询了两次。
如果您在关系方法上留下括号,您可以添加任何您想要的查询,然后使用 setRelation()
手动设置关系。我还没有测试过,但像这样的东西应该可以工作:
$latestConversations = $this->user
->latestConversations()
->with('latestMessage.user', 'users')
->get();
$this->user->setRelation('latestConversations', $latestConversations);
// then you should be able to just access it normally:
return $this->user->latestConversations;