为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 更新会话数组中的值

Laravel 更新会话数组中的值

PHP
暮色呼如 2021-12-03 19:41:01
我正在使用 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"    ]   ]
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

要改变内部的值会话阵列最好是使用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)。


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信