我有一个与子表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
检索这些总和的正确方法是什么?
答案 0 :(得分:1)
Laravel的Collection
通过使用点符号使这变得非常简单。一些例子here。
简单方法(点表示法):
$sum = $items->sum('Online.field');
更明确(回调):
或者,如果你想更明确,例如使用条件/过滤器:提供Closure
:
$sum = $items->sum(function($item) {
return $item->Online->sum('field');
});