如何从 laravel 中的会话中删除数组

How do I remove array from session in laravel

我正在 laravel 中开发一个购物车,我想在其中删除会话中的数组,但它不起作用。

我试过这些:

https://www.allphptricks.com/simple-shopping-cart-using-php-and-mysql/
https://laracasts.com/discuss/channels/laravel/remove-array-element-from-session?page=1

但是没用

foreach($request->session()->get('shopping_cart') as $key => $value){
    if($value['code'] == $request->remove_id){
        $request->session()->forget("shopping_cart.". $request->remove_id);
        break;
    }
}
array:4 [▼
  "fh5hhr34" => array:5 [▼
  "name" => "Wilma Goodman"
  "code" => "fh5hhr34"
  "price" => "412"
  "quantity" => "2"
  "image" => "product_pics/1566372402.jpeg"
   ]
  "ghtzzr" => array:5 [▼
  "name" => "Lillian Hays"
  "code" => "ghtzzr"
  "price" => "187"
  "quantity" => "4"
  "image" => "product_pics/1566372214.jpg"
   ]
 ]

试试这个代码:

foreach(session('shopping_cart') as $key => $value){
    if($value['code'] == $request->remove_id){
        session()->forget("shopping_cart.$key");
        break;
    }
}

如果还是不行你可以尝试save会话结束时foreach,即:

foreach(session('shopping_cart') as $key => $value){
    //....
}
session()->save();

如果有效请告诉我。