php - 如何更新 Laravel session 数组中的单个值?

标签 php session laravel laravel-5

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

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

如果我知道 itemId,如何更新单个商品的数量?

我知道执行此操作的一种方法是获取整个数组,循环遍历数组,进行更新并将整个数组“放入”回 session 中。 这是唯一的方法吗?

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

最佳答案

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

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"
  }
]

关于php - 如何更新 Laravel session 数组中的单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151030/

相关文章:

php - laravel eloquent 获取多个用户之间的所有常见聊天

php - 如何始终将属性附加到 Laravel Eloquent 模型?

php - 如何查看用户使用的浏览器(和版本)?

php - 何时使用 PDO 准备查询。 mysql_real_escape 错误

php - 如何在 Laravel 4.2 中使用 Gmail 将存储在数组中的电子邮件信息传递到 Mail::send

java - 在spring mvc中正确使用session

asp.net:单个 session 变量与保存在 session 中的对象

php - Laravel 查询生成器一般错误 2031

asp.net - .ASPXAUTH cookie 在 session 结束时过期

php - 如何在使用 Laravel 4 构建的 Rest api 中从 PUT 请求获取输入数据