我正在使用 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/