Wie Sie wahrscheinlich wissen, ein Array-Werte haben und jeder Wert hat einen Schlüssel (['key1' => 'value1']
), der Wert könnte auch ein anderes Array sein. In Ihrem Beispiel haben Sie ein Array verwendet (user.basket
), jeder Punkt repräsentiert eine neue Ebene des Arrays.
Entfernen von Wert
Sie schieben Sie Ihre ID an die Sitzung Array. Sie geben keinen Schlüssel an und erhalten daher einen unbekannten Schlüssel. Daher möchten Sie ihn mit einem Wert (Ihrer ID) entfernen. Die Variable $valueToRemove
im Beispiel ist Ihre ID.
session()->put('user.basket', array_diff(session()->get('user.basket'), [$valueToRemove]));
Um zu erklären: Ersetzen Sie die user basket
mit allem, was in user basket
, die nicht in der Anordnung ist, dass nur die $valueToRemove
enthält.
Entfernen von Schlüssel
Können sagen, Sie kennen die, welche Taste (Position) Sie entfernen möchten, wenn Sie zum Beispiel Schleife foreach(session()->get('user.basket') as $key => $value)
das Array werfen. Dann können Sie den spezifischen Schlüssel mit forget
entfernen.
session()->forget('user.basket.'.$keyToRemove); // example: 'user.basket.7'
Ihr Code
public function removeItem($id)
{
session()->put('user.basket', array_diff(session()->get('user.basket'), [$id]))
return back();
}
http://stackoverflow.com/questions/21242401/delete-items-from-laravel-session-array –
ist Ihre Anwendung unterstützt mehrere Elemente mit gleicher Speicherung ID im Warenkorb? –