【问题标题】:Eloquent sum parameters db issue雄辩的总和参数数据库问题
【发布时间】:2016-03-11 11:34:56
【问题描述】:

我有一个 db 表名为 clase_schedule,以及 2 个列,即 schedule_id 和 capMax,所以我想获取每个计划的总上限,在 sql 中它将是这样的:

select schedule_id, sum(capMax) 
From ClaseSchedule 
Group By schedule_id

我已经尝试在 eloquent 上做到这一点,但我无法做到。

【问题讨论】:

  • 你检查过你的表名吗?我看到您在问题中提到了 clase_schedule ,但在您的代码示例中提到了 ClaseSchedule 。注意中间的下划线。
  • 是的,这不是问题,问题是把它翻译成雄辩的代码
  • 你应该在这里发布你的尝试代码:)
  • $plazas = ClaseSchedule::select('schedule_id', ClaseSchedule::sum('capMax'))->groupBy('schedule_id');
  • 检查我的答案:)

标签: mysql sql laravel eloquent


【解决方案1】:

你需要这样的东西:

DB::table('ClaseSchedule')
   ->select(['schedule_id', DB::raw('SUM(capMax')])
   ->groupBy('schedule_id')->get();

要在 Eloquent 中使用 MySQL 聚合函数,您需要使用 DB::raw

或者你可以像这样使用sum

DB::table('ClaseSchedule')->sum('capMax')->groupBy('schedule_id')->get();

参考资料: https://laravel.com/docs/4.2/queries#aggregates

【讨论】:

  • 我认为这是方法,但现在它给我一个错误,因为它不允许我使用 DB::
  • 您需要在文件顶部添加use DB
  • 我们错过了 ->get(),解决了这个问题,谢谢
猜你喜欢
  • 2018-11-11
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
  • 2019-07-17
  • 1970-01-01
  • 2014-03-15
  • 2014-05-10
相关资源
最近更新 更多