获取按付款类型分组的付款总额

时间:2014-09-10 09:51:47

标签: mysql sql laravel orm eloquent

SELECT payment_type, sum(total_received) FROM payments GROUP BY payment_type

在MySQL中,我提供了一个很好的列表,列出了我的所有付款类型以及该类型的总计。

-

Payment::all()->groupBy('payment_type')->sum('total_received')

在Eloquent中,

绝对没有给我任何东西。

与上述MySQL查询等效的Eloquent是什么?

2 个答案:

答案 0 :(得分:0)

这是一个可以在Eloquent中使用的代码块:

$var = DB::table('payments')
                 ->select('payment_type', DB::raw('sum(total_received)'))
                 ->groupBy('payment_type')
                 ->get();

答案 1 :(得分:0)

最好使用lists,因为返回只有2个属性的模型是多余的:

Payment::selectRaw('payment_type as type, sum(total_received) as sum')
   ->groupBy('type')
   ->lists('sum', 'type');

// returns array, something like this:
array(
  'type1' => '25',
  'type2' => '50',
  ...
);