php - Laravel 5.5 按票数总和获取帖子顺序

标签 php mysql laravel-5 eloquent

您好,我想要获得最受欢迎的帖子,我创建了一个系统,您可以在其中对帖子或评论进行投票。 [+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/

相关文章:

php - 模型 Laravel 更新时出错

mysql - 根据匹配的 ID 获取另一个表的记录

php - 如何通过 PHPmyAdmin 将 "On Update Cascade"添加到我现有的 MySQL 表中?

mysql - 带总和的 Laravel 查询生成器

php - 带有单选按钮的表单提交到 mysql

java - 解析 JSON 数据时出错 - 异步任务

php - 查询显示数据库中的四个随机数据

php - 如何访问从模型中的数组返回到 Controller 的数据以与表库一起显示

php - 回滚特定迁移?

laravel-5 - 如何在 Laravel 项目中设置杠杆浏览缓存和 Gzip 压缩