Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel对包含多个项目的集合求和_Laravel - Fatal编程技术网

Laravel对包含多个项目的集合求和

Laravel对包含多个项目的集合求和,laravel,Laravel,我有一个模型settlementries,它与一个子表return$this->hasMany('App\Online','entry_id')有关系 当尝试获取一个条目时,我能够像下面的示例中那样对我的集合求和 $item = SettlementEntries::find($id); $item->Online->sum('field'); // returns the correct sum 我的问题始于$id是一个数组时,因此我的结果包含两个结算 $items = Set

我有一个模型
settlementries
,它与一个子表
return$this->hasMany('App\Online','entry_id')有关系

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

$item = SettlementEntries::find($id);
$item->Online->sum('field'); // returns the correct sum
我的问题始于
$id
是一个数组时,因此我的结果包含两个结算

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

$items->Online->sum('field') Laravel的
集合
通过使用点符号使这一点变得非常简单。一些例子

简单方法(点表示法):

$sum = $items->sum('Online.field');
更明确(回调):

$sum = $items->sum('Online.field');
或者,如果您希望更明确,例如使用条件/过滤器:提供一个
闭包


使用
foreach
处理单个条目我不需要计算单个条目的总和,我需要将它们组合在一起。这是可行的,但如果不循环使用它们,就不可能做到这一点?
$sum=$items->sum('Online.field')始终返回0我已在阵列上对此进行了测试。你能试试
$sum=collect($items->toArray())->sum('Online.field')?不起作用。因此继续获取0。如果我执行以下操作
$items->sum('Online.0.field')它似乎适用于您的第一个解决方案(上面的点表示法)。