2016-06-09 68 views
0

這是我的代碼:Laravel收藏

$selectedInvoices = $input['invoice']; 

     $invoices = collect([]); 
     foreach ($selectedInvoices as $invoice) { 
      $merged = $invoices->merge([Invoice::find(Invoice::getPrivateId($invoice))]); 
     } 
     $merged->all(); 

     $totalAmount = 0; 

     foreach ($merged as $invoice) 
     { 
      $totalAmount = $totalAmount + $invoice->balance; 
     } 

我的問題是$發票和$合併值不是其中有一個選擇的ID ......婉任何一個發票的情況下,幫幫我好嗎?

回答

1

我不確定你的getPrivateId方法是什麼,但猜測它是特定於你的應用程序的東西。

嘗試這樣代替:

// This is assuming your $input['invoice'] is an array 
$privateIds = collect($input['invoice'])->map(function($item) { 
    return Invoice::getPrivateId($item); 
}); 

// Replace 'id' with whatever column name you're using as an ID. 
$invoices = Invoice::whereIn('id', $privateIds->all())->get(); 

$totalAmount = $invoices->sum('balance'); 

默認情況下,Laravel當你做出一個洋洋灑灑查詢返回的集合。該集合包含發票實例。

+0

智能男人<3謝謝 –