php - laravel 更新会话数组中的值
问题描述
我正在使用 laravel 构建购物车,我想更新会话数组中的数量。
我用过这个链接
但这对我不起作用。
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()->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)
.
推荐阅读
- javascript - 等待 API 调用返回并将其放入变量中
- flutter - 构建期间调用的 Flutter Provider setState() 或 markNeedsBuild():Provider
- php - 是否可以在不遍历数组的情况下知道元素是否存在于数组中?
- arduino - Macbook 没有向我的 Arduino Portenta H7 显示 USB 端口
- angular - 如何根据数据库更改刷新 Angular 应用程序
- reactjs - 导入 react-three-fiber 和 react-three/drei 的问题
- c# - 在 Azure 表中按分区键删除实体
- laravel - 部署 Laravel 应用程序的 Github 工作流程
- filter - 以稳健的方式合并低可靠性时间序列
- java - 我在 POJO 中有 JSON 结构,在 HashMap 中有动态数据 我想将 Hashmap 中的数据设置为 POJO 以发送有效负载,我该如何实现?