如何更新Laravel会话数组中的单个值?

时间:2015-05-10 11:49:20

标签: php session laravel laravel-5

我有一个像这样的Session数组:

[
    {
        "itemId": "1",
        "itemQuantity": "3",
        "itemName": "Item_name1"
    },
    {
        "itemId": "2",
        "itemQuantity": "2",
        "itemName": "Item_name2"
    }
]

如果我知道itemId

,如何更新单个项目的数量?

我知道这样做的一种方法是获取整个数组,遍历数组,进行更新并放置'整个阵列回到会话中。 这是唯一的方法吗?

我是初学者。请帮忙。 感谢。

1 个答案:

答案 0 :(得分:2)

通过引用传递对象,因此您可以简单地执行此操作。

foreach(Session::get('cart') as $item) {
    if ($item->itemId == '2') { // say we  want to double the quantity for itemId 2
        $item->itemQuantity = $item->itemQuantity * 2;
        break;
    }
}
dd(Session::get('cart'));

输出:

array:2 [▼
  0 => {#162 ▼
    +"itemId": "1"
    +"itemQuantity": "3"
    +"itemName": "Item_name1"
  }
  1 => {#163 ▼
    +"itemId": "2"
    +"itemQuantity": 4  <<--- the quantity has been doubled
    +"itemName": "Item_name2"
  }
]