laravel模型荷载与条件的关系

dauxcl2d  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(258)

我正在尝试使用依赖于通知模型的值的关系立即加载用户的通知:

  1. $notifications = $user->notifications()
  2. ->with([
  3. 'notifiable' => function ($query) {
  4. // Only load notifiable relation if notification 'notifiable_type' equals...
  5. },
  6. 'notifiable.group:id,title' => function ($query) {
  7. // Only load notifiable.group:id,title relation if notification 'notifiable_type' equals...
  8. }
  9. ])
  10. ->get();

问题是 $query 在闭包中查询 notifiable 而不是通知模型本身。。。很明显我错过了一些非常琐碎的事情。有什么建议吗?

krugob8w

krugob8w1#

你可以利用 Lazy Eager Loading ```
$notifications = $user->notifications;

$notifications->each(function ($item) {
if ($item->notifiable_type == 'value-one') {
$item->load('notifiable');
}

  1. if ($item->notifiable_type == 'value-two') {
  2. $item->load('notifiable.group:id,title');
  3. }

});

相关问题