Laravel Sum一个包含多个项目的集合

时间:2016-12-02 09:14:18

标签: laravel

我有一个与子表SettlementEntries

有关系的模型return $this->hasMany('App\Online', 'entry_id');

当尝试获取一个条目时,我可以像下面的示例中那样对我的集合求和。

$item = SettlementEntries::find($id);
$item->Online->sum('field'); // returns the correct sum

$id是一个数组时我的问题就出现了,所以我的结果包含2个SettlementEntries。

 $items = SettlementEntries::find($ids);
 $items->Online->sum('field'); <- returns zero

检索这些总和的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

Laravel的Collection通过使用点符号使这变得非常简单。一些例子here

简单方法(点表示法):

$sum = $items->sum('Online.field');

更明确(回调):

或者,如果你想更明确,例如使用条件/过滤器:提供Closure

$sum = $items->sum(function($item) {
  return $item->Online->sum('field');
});