我正在使用laravel 5.2我有一个问题。有Post
模型和Comment
模型。我希望所有帖子都有评论,无论他们是否有评论。而且我想通过他们的评论来订购帖子,比如帖子有评论都在前面,帖子后面没有评论。我该如何完成?感谢。
答案 0 :(得分:3)
您可以使用withCount
并按照评论次数排序:
$posts = Post::withCount('comments')
->orderBy('comments_count', 'desc')
->get();
这将订购首先有comments
的帖子,其余的将会跟随它。
要实际计算关系中的结果数 加载它们你可以使用
withCount
方法,它将放置一个 结果模型上的{relation}_count
列。