我想通过post表单在我的会话(‘cart’)中更改属性"cantidad“,该表单有一个输入type="num”,它将在会话中更改数量。
但我不能用成功来改变它,它不会什么都不做。
会话代码
$cart = [
$id => [
"id" => $product->id,
"nombre" => $product->nombre,
"cantidad" => 1,
"precio" => $product->precio,
"foto" => $product->imagen1
]正在尝试更改会话属性
public function updateCart($id , Request $request){
$cart = session()->get('cart');
foreach($cart as $index => $product){
if($product["id"] == $id){
$producto["cantidad"] = $request->cantidad;
}
}
session()->put('cart' , $cart);
return view('carrito/carrito');
}我哪里错了?
很抱歉问这个问题,我是新来的
发布于 2020-10-08 00:03:42
PHP中的数组是通过值传递的,而不是通过引用传递的。换句话说,在您的foreach循环中,您将获得数组的一个副本。
试着这样做:
foreach(array_keys($cart) as $index){
if($cart[$index]["id"] == $id){
$cart[$index]["cantidad"] = $request->cantidad;
}
}或者,您可以通过引用&运算符来传递数组:
foreach($cart as &$product){
if($product["id"] == $id) {
$product["cantidad"] = $request->cantidad;
}
}https://stackoverflow.com/questions/64247668
复制相似问题