Laravel Session
работает на основе ключ / значение.Поэтому, когда вы push
добавляете другой элемент к клавише cart
, вы перезаписываете тот же ключ, к которому вы добавили предыдущее значение.
Если вы хотите сохранить cart
со всеми продуктамиВы добавили, вам сначала нужно получить значение и добавить новый продукт.Например:
public function addProduct($id, $quantity) {
// Get cart from session
$cart = session('cart', []);
// Increment existing product quantity, or add product to cart
if (array_key_exists($id, $cart)) {
$cart[$id]->quantity += $quantity;
} else {
$cart[$id] = (object) compact('id', 'quantity');
}
// Set cart in session
session(compact('cart'));
return $cart;
}
public function removeProduct($id) {
// Get cart from session
$cart = session('cart', []);
// Remove product from cart
unset($cart[$id]);
// Set cart in session
session(compact('cart'));
return $cart;
}