在购物车上使用laravel集合方法

时间:2016-05-21 02:51:26

标签: laravel laravel-5.2

这就是我的收藏品现在的样子。

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

我可以做些什么来匹配id并将quantity更改为2.这适用于购物车。

因此,如果我们在购物车中找到了一件物品,那么最终会是这样的。

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

2 个答案:

答案 0 :(得分:1)

您可以使用集合的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

答案 1 :(得分:0)

在购物车集合上使用here

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