これが私がセッションをしている問題です
session('products')
これは実際にはidを含む配列です
session('products')
array:4 [▼
0 => "1"
1 => "2"
2 => "4"
3 => "1"
]
削除したいのですが、4
どうすればよいですか?方法を試しました
session()->pull($product, 'products');
しかし、それはうまくいきませんでした!
その他の解決策
session()->forget('products', $product);
それもうまくいきませんでした
AFAIRは、最初に配列全体を取得し、編集してから、再度設定する必要があります。製品IDで削除する場合は、配列値を想定しているので、次のように使用できます。PHP配列値による削除(キーではない)
$products = session()->pull('products', []); // Second argument is a default value
if(($key = array_search($idToDelete, $products)) !== false) {
unset($products[$key]);
}
session()->put('products', $products);
Session::pull
アイテムが削除するときに最初のパラメーターを取り、返すデフォルト値として2番目のパラメーターを取ります。引数の順序を間違えました。試してみてください:
session()->pull('products'); // You can specify second argument if you need default value
ソースでわかるように、Session::forget
文字列または配列が必要なので、最初のパラメータのみを指定する必要があります。
session()->forget('products');
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加