求助!关于论坛帖子的排序问题....用 Laravel 的 Eloquent 怎么解决呢

求助。。。快被折腾死啦。我有POST和COMMENT两个表,是一对多的关系,现在我只是想让他们实现像论坛那样的排序功能: 根据COMMRNT的created at和POST的created at来排序,但是用下面的方法一点用都没有.

$posts = Post::with(array('comments' => function($q) {
return $q->orderBy('created_at', 'desc');
})) ->paginate(30);  

我还尝试过用left join,还是没有什么卵用, 结果是重复的COMMENTS.......快疯了。请问问大神们这点用laravel的Eloquent怎么解决呢

   $posts = Post::select('posts.*')
   ->leftJoin('comments', 'comments.post_id', '=', 'posts.id')
  ->with('comments')
   ->orderBy('comments.created_at', 'desc')
  ->paginate(30);
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

怎么解决的呀,我也有类似问题?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!