Я работаю над проектом с laravel, и я хочу, чтобы у каждого пользователя была своя корзина, что означает, что если пользователь добавляет товар в корзину, удаляет или обновляет его, он должен отображаться только в его учетной записи, не затрагивая других пользователей. Сейчас, когда пользователь добавляет элемент или удаляет его, он отображается у всех пользователей.
Я пробовал некоторые решения из другого источника, но не работал.
ProductController.php
public function cart()
{
return view('cart');
}
public function addToCart($id)
{
$userId = Auth::user()->id;
$products = products_model::where('user_id', $userId)->find($id);
if(!$products) {
abort(404);
}
$cart = session()->get('cart');
// if cart is empty then this the first product
if(!$cart) {
$cart = [
$id => [
"pro_name" => $products->pro_name,
"quantity" => 1,
"pro_price" => $products->pro_price,
"image" => $products->image
]
];
session()->put('cart', $cart);
return redirect()->back()
->with('success', 'Product added to cart successfully!');
}
// if cart not empty then check if this product exist then increment quantity
if(isset($cart[$id])) {
$cart[$id]['quantity']++;
session()->put('cart', $cart);
return redirect()->back()
->with('success', 'Product added to cart successfully!');
}
// if item not exist in cart then add to cart with quantity = 1
$cart[$id] = [
"pro_name" => $products->pro_name,
"quantity" => 1,
"pro_price" => $products->pro_price,
"image" => $products->image
];
session()->put('cart', $cart);
return redirect()->back()
->with('success', 'Product added to cart successfully!');
}
public function update(Request $request)
{
if($request->id and $request->quantity)
{
$cart = session()->get('cart');
$cart[$request->id]["quantity"] = $request->quantity;
session()->put('cart', $cart);
session()->flash('success', 'Cart updated successfully');
}
}
public function remove(Request $request)
{
if($request->id) {
$cart = session()->get('cart');
if(isset($cart[$request->id])) {
unset($cart[$request->id]);
session()->put('cart', $cart);
}
session()->flash('success', 'Product removed successfully');
}
}
Я пытался добавить эти строки (добавить в корзину), но не работает.
$userId = Auth::user()->id;
$products = products_model::where('user_id', $userId)- >find($id);