Laravel 5>订单上下投票之间的差异>分页

时间:2016-04-19 23:25:29

标签: laravel pagination relationship difference

假设我有以下数据库设置

用户表

id
name

发布表

id
post

投票表

id
user_id
post_id
vote (1 = up, -1 = down)

...我们也假设我已经正确地设置了每一对多的关系:)

如何通过上下投票之间的差异查询前5个帖子?

这样的事情会很棒......

$posts = Post::whereHas('votes', function($query) {
    $query->orderByRaw('sum(\'vote\'), desc');
})->get();

...我想稍后分页。

1 个答案:

答案 0 :(得分:0)

现在正在工作:)

$posts = Post::has('votes')
    ->leftJoin('votes', 'votes.post_id', '=', 'posts.id')
    ->selectRaw('posts.*, sum(votes.vote) as votes_sum')
    ->groupBy('posts.id')
    ->orderBy('votes_sum', 'desc')
    ->paginate(5);