更改会话中的变量Laravel 7



我想更改属性"cantidad";在我的会话("art"(中通过具有输入类型="的post表单;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');
}

我哪里错了?

很抱歉问这个,我是这个jaja 的新手

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;
}
}

相关内容

  • 没有找到相关文章

最新更新