首页 > 解决方案 > 如何在 laravel 中急切加载嵌套关系?

问题描述

我有三个实体User、Blog 和 Comments。我可以使用以下代码加载用户博客:

$userBlogs = User::with('blogs')->get();

但是我怎样才能急切地加载与每个博客相关的评论呢?

用户:

public function blogs() {
    return $this->hasMany(Blog::class);
}

博客:

public function comments() {
  return $this->hasMany(Comments::class);
}

标签: laravellaravel-5eloquenteager-loading

解决方案


你可以这样做

$userBlogs = User::with('blogs.comments')->get();

或者你可以

$userBlogs  = User::with(['blogs' => function ($query) {
    $query->with('comments');
}]

推荐阅读