查询关系

Eloquent 还允许你查询已定义的关系,如下所示:

User::whereHas('articles', function (Builder $query) {
    $query->where('published', '!=', true);
})->get();

在这种情况下,这要求你的关系方法名称为 articles。传递给闭包的参数是相关模型的查询生成器,因此你可以在其他地方使用任何查询。

渴望加载

假设用户模型与文章模型有关系,并且你希望加载相关文章。这意味着在检索用户时将加载用户的文章。

articles 是 User 模型中的关系名称(方法)。

User::with('articles')->get();

如果你有多重关系。例如文章和帖子。

User::with('articles','posts')->get();

并选择嵌套关系

User::with('posts.comments')->get();

调用多个嵌套关系

User::with('posts.comments.likes')->get()