2016-12-02 85 views
1

我有,有一個關係到子表return $this->hasMany('App\Online', 'entry_id');Laravel總和與多個項目

當試圖獲取一個單一入口我能總結我的收藏喜歡在下面的例子中的模型SettlementEntries的集合。

$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

使用'foreach'一次入境 – ATIKON

+0

工作,我不東東單個條目的總和,我需要他們結合。 – DavidCandreva

回答

1

Laravel的Collection使這很容易,通過使用點符號。一些例子here

最簡單的方法(點表示):

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

更明確(回調):

或者,如果你想更加明確,例如使用條件/過濾器:提供Closure

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

這是行得通的,但是不可能在沒有循環它們的情況下做到這一點? – DavidCandreva

+0

其實它是。看到我更新的答案。 –

+0

'$ sum = $ items-> sum('Online.field');'總是返回0 – DavidCandreva