You AFAIR have to firstly retrieve whole array, edit it and then set it again. If you want to delete by product ID, which is as I assume an array value, you can use this: PHP array delete by value (not key)
$products = session()->pull('products', []); // Second argument is a default value
if(($key = array_search($idToDelete, $products)) !== false) {
unset($products[$key]);
}
session()->put('products', $products);
Misunderstood question
Session::pull
takes first parameter as the item do delete and second as the default value to return. You have mistaken the order of arguments. Try:
session()->pull('products'); // You can specify second argument if you need default value
As I can see in source, Session::forget
expects string or array, so you should specify only the first parameter:
session()->forget('products');
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…