php - laravel 更新 session 数组中的值

标签 php laravel session

我正在使用 Laravel 构建购物车,我想更新 session 数组中的数量。

我使用过此链接

How to update a single value in a Laravel Session Array?

但它对我不起作用。

  foreach($request->session()->get('shopping_cart') as $value){
    if($value['code'] == $request->product_id){
        echo $value['code'];
        $value['quantity'] = $request->qty_val;
        echo $value['quantity'].'<br />';
        break;
    }
  }

  dd($request->session()->get('shopping_cart'));

 array:2 [▼
     "" => array:5 [▼
     "name" => "Fiona Nicholson"
     "code" => null
     "price" => "848"
     "quantity" => "1"
     "image" => "product_pics/1566371659.jpeg"
    ]
   "sdfwef" => array:5 [▼
      "name" => "Quentin Bryant"
      "code" => "sdfwef"
      "price" => "713"
      "quantity" => "1"
      "image" => "product_pics/1566371616.jpg"
    ]
   ]

最佳答案

要更改 session 数组中的值,最好使用带有点表示法session()->put(),而不是传递通过引用,即:

foreach($request->session()->get('shopping_cart') as $key => $value){
    if($value['code'] == $request->product_id){
        $request->session()->put("shopping_cart.$key.quantity", $request->qty_val);
        break;
    }
}

顺便说一句,您可以使用 session() 帮助器,如下所示:

foreach(session('shopping_cart') as $key => $value){
    if($value['code'] == $request->product_id){
        session(["shopping_cart.$key.quantity" => $request->qty_val]);
        break;
    }
}

使用以数组作为参数的帮助器,session([$key => $value]) 与使用 session()->put($key, $value) 相同)

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

相关文章:

php - 表单提交发送其他元素属性?

Laravel session 中间件损坏

python - 在 Python 中从 Quickblox 进行身份验证和获取 session token

php - 在 AJAX 请求中设置 cookie?

javascript - 如何使用 AJAX 加载 IMDB 电影信息

php - 如何在 PHP 中打开名称中包含 unicode 字符的文件?

laravel - checkout Laravel中的新分支后出现错误

php - 我们如何读取laravel中views文件夹中存储的html文件的内容?

php - 使用 mysql 和 session 变量进行多个 Ajax 调用

php - 使用 PHPExcel 将 excel 文件导入 MySQL 表