【问题标题】:Writing Eloquent Query to find posts with most votes Laravel编写 Eloquent Query 以查找得票最多的帖子 Laravel
【发布时间】:2014-08-20 05:41:10
【问题描述】:

我在编写 Eloquent 查询时遇到了问题,该查询找到了我的帖子获得了最多的选票。我有一个投票表和一个帖子表。 votes 表有一个 id 列、一个 post_id 列、一个 user_id 列和一个 vote 列。如果有人为帖子投票,则投票列的值设置为 1。如果有人对帖子投反对票,则投票列设置为 0。我可以使用以下查询找到一个帖子的投票数:

Vote::where('post_id','=', $post->id)->where('vote','=',1)->count()

如何改进此查询以找到得票最多的帖子?我试过想出一种方法,但我似乎做不到。非常感谢。

【问题讨论】:

标签: php mysql database laravel eloquent


【解决方案1】:

就这样吧……

DB::table('votes')->orderBy(DB::raw('sum(\'vote\')'))
                ->groupBy('post_id')->get();

这将根据他们的 SUM 对您的投票进行排序

【讨论】:

  • 谢谢,但我正在尝试按票数排序帖子。这能为我做吗?我希望能够返回帖子标题、正文和其他类似内容。
  • 那么你要做的就是 Vote::where('post_id','=', $post->id)->orderBy('vote')->get() 如果上面的评论实际上是您想要的(所有帖子按投票排序)但是您最初的问题似乎是说您想找到投票最多的帖子。
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2019-07-21
  • 2017-11-03
  • 2015-02-08
相关资源
最近更新 更多