2016-06-09 64 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谢谢 –