2016-05-21 41 views
0

這就是我的收藏現在的樣子。在購物車上使用laravel收集方法

[{"id":"1","quantity":1},{"id":"2","quantity":1}] 

我能做些什麼,以配合id和改變quantity 2。這是一個購物車。

所以最後它會看起來像這樣,如果我們發現一個項目已經在購物車。

[{"id":"1","quantity":2},{"id":"2","quantity":1}] 

回答

0

在購物車集合上使用transform

$id = 1; 
$cart->transform(function ($item) use ($id) { 
    if ($item['id'] == $id) { 
     $item['q']++; 
    } 
    return $item; 
}); 
1

您可以使用collection的transform方法。它迭代集合中的項目,允許您更改值。

假設您的對象集合存儲在$someCollection中。你可以這樣做:

$someCollection->transform(function ($item, $key) use ($id) { 
    if ($item->id == $id) { 
     $item->quantity++; 
    } 
    return $item; 
}); 

這將增加一個數量與您在$ ID通過ID項目

https://laravel.com/docs/5.2/collections#method-transform