首页 > 解决方案 > 购物车在 laravel 中为所有用户显示相同的产品

问题描述

我的购物车为所有用户显示相同的产品。我正在使用内置身份验证的 laravel,并且我检查了使用会话的其他答案。但我想用 auth 来做。

购物车控制器.php

class CartController extends Controller
{
    public function store(Request $request)
    {
        
        if (Auth::check()) {

            $cart = Cart::where('user_id', Auth::id())
                ->where('product_id', $request->product_id)
                ->first();

            if ($cart) {
                $cart->increment('product_quantity');
                $cart->save();
            } else {
                Cart::create([
                    'user_id' => Auth::id(),
                    'product_id' => $request->product_id
                ]);
            }

            session()->flash('success', 'Product has added to cart !!');
            return back();
        }
    }


    public function show()
    {
        
        if (Auth::check()) {
            $cart= Cart::all();
            return view('frontend.pages.cart')->with('carts', $cart);
        } else {
            session()->flash('status', 'No cart items added');
        }
    }

请帮助提供代码。

标签: phplaravel

解决方案


  1. 首先,请确保 Auth::id() 返回正确的 ID。你也可以试试 Auth::user()->id。
  2. 检查购物车和产品之间的关系是否正确形成
  3. 我不确定您要列出所有购物车的目的。也许使用 Cart::all() 的 show 函数是一个错误?

推荐阅读