在这里,根据每篇帖子的评论,我想要一周或一个月的帖子。查询正在运行,但我无法分页。请帮忙!
$top = Post::having('created_at', '>=', $time)
->selectRaw('posts.*, count(*) as `aggregate`')
->join('post_comments', 'posts.id', '=', 'post_comments.post_id')
->groupBy('post_id')
->orderBy('aggregate', 'desc')
->with('post_comments_count')
->get();
答案 0 :(得分:0)
你是否尝试过Laravel中的 - > paginate()命令?
$top = Post::having('created_at', '>=', $time)
->selectRaw('posts.*, count(*) as `aggregate`')
->join('post_comments', 'posts.id', '=', 'post_comments.post_id')
->groupBy('post_id')
->orderBy('aggregate', 'desc')
->with('post_comments_count')
->paginate(10);
应该可以正常工作。 在您的刀片文件中,您可以使用
调用分页{!! $top->links() !!}
答案 1 :(得分:0)
需要在使用groupBy时手动设置 paginator ,如Laravel docs中所述!
注意:目前,使用groupBy语句的分页操作 Laravel无法有效执行。如果你需要使用 groupBy具有分页结果集,建议您进行查询 数据库并手动创建一个分页器。