您好,我想要获得最受欢迎的帖子,我创建了一个系统,您可以在其中对帖子或评论进行投票。 [+1,-1]
投票表
整数:id - 投票id
整数:model_id - 模型 ID
字符串:模型 - 模型名称 ["App/Post","App/Comment"]
整数:值 - 投票值[-1,1]
现在我想要按值(value)总和排序的帖子。但我陷入了死侍。 这是我的实际代码,不幸的是不起作用。
DB::table('posts')
->join('votes','posts.id','votes.model_id')
->groupBy('votes.model_id')
->where('model','App\Post')
->select('posts.*','sum(\'votes.value\')')
->get();
最佳答案
请仔细阅读说明书Laravel query builder .
您需要使用原始表达式,因为它具有聚合函数。
DB::table('posts')
->join('votes','posts.id','=','votes.model_id')
->groupBy('votes.model_id')
->where('model','App\Post')
->selectRaw('posts.*, sum(votes.value) as sum_value')
->get();
关于php - Laravel 5.5 按票数总和获取帖子顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47764068/