带有嵌套关系的 Laravel 急切加载
Posted
技术标签:
【中文标题】带有嵌套关系的 Laravel 急切加载【英文标题】:Laravel eager loading with nested relationship 【发布时间】:2015-08-16 02:22:27 【问题描述】:我知道有人问过这个问题,但我的情况不同。 我定义了与评论模型有关系的 Post 模型:
/*Post Model*/
public function comments()
return $this->hasMany('comment');
和评论模型,每个评论属于一个用户: /评论模型/
public function user()
return $this->belongto('user');
现在我想查询所有帖子和急切加载 cmets(每个帖子的)以及发布评论的用户信息。 无论如何让它工作好吗? 谢谢。
【问题讨论】:
【参考方案1】:你想要的是嵌套的eager loading,向下滚动一下就可以看到了。
引用文档:
要急切加载嵌套关系,您可以使用“点”语法。为了 例如,让我们急切地加载这本书的所有作者和所有 一篇 Eloquent 声明中的作者个人联系方式:
$books = Book::with('author.contacts')->get();
你的情况
$posts = Post::with('comments.user')->get();
【讨论】:
感谢您的回复,正是我想要的。以上是关于带有嵌套关系的 Laravel 急切加载的主要内容,如果未能解决你的问题,请参考以下文章
laravel eloquent - 在嵌套急切加载的关系上不使用
Laravel 混合获取 Eloquent 急切加载嵌套多个模型