【发布时间】:2020-08-23 05:38:07
【问题描述】:
我的购物车会话是
Array
(
[0] => Array
(
[id] => 123-XXL
[prod_name] => Grey Shirt
[prod_rate] => 2100
[size] => XXL
[qty] => 1
[ind_tot] => 2100
)
[1] => Array
(
[id] => 134-XL
[prod_name] => red_shirt
[prod_rate] => 1800
[size] => XL
[qty] => 1
[ind_tot] => 1800
)
)
现在我尝试将会话的 qty 值增加 1,
我的增量函数是
public function increment(Request $request){
$id = $request->id;
$rate = $request->rate;
$qty = $request->qty;
$ind_tot = $request->ind_tot;
$input = $request->all();
$qty_up = $qty+1;
$ind_tot = $ind_tot+$rate;
if(Session::has('cart_sess')){
$cart = Session::get('cart_sess');
foreach ($cart as $key => $value){
if($cart[$key]['id'] == $id){
$cart = $cart->replace([$cart[$key]['qty'] => $qty_up, $cart[$key]['ind_tot'] => $ind_tot]);
Session::set('cart_sess', $cart);
}
}
}
return response()->json($qty_up, 200);
}
当我控制台显示错误为
500 (Internal Server Error)
如何更新 laravel 会话数组中的值。
【问题讨论】:
-
您的 $cart 中没有名为
quan的键 -
哦,是的...谢谢...
-
@bhucho 我尝试更正,但它再次显示相同的错误。我的递增代码是否正确?
-
你为什么不这样做
if($cart[$key]['id'] == $id){ $value['qty'] = $qty_up; $value['ind_tot'] = $ind_tot; }然后在foreach之后Session::set('cart_sess', $cart); -
您是否在 .env 中设置了 APP_DEBUG=true?然后你可以看到堆栈跟踪,而不仅仅是一个 500
标签: laravel session shopping-cart laravel-7