Laravel 在购物车中添加具有相同产品id的项目

Laravel 在购物车中添加具有相同产品id的项目,laravel,session,laravel-5,cart,laravel-5.8,Laravel,Session,Laravel 5,Cart,Laravel 5.8,我试图添加第二个id相同但大小不同的产品,但我一直覆盖第一个产品 if(isset($cart[$id])&&($cart[$id]['size']==$request->productSize)) { $cart[$id]['quantity'] += $request->productQuantity; session()->put('cart', $cart); return redirect()

我试图添加第二个id相同但大小不同的产品,但我一直覆盖第一个产品

    if(isset($cart[$id])&&($cart[$id]['size']==$request->productSize)) {
        $cart[$id]['quantity'] += $request->productQuantity;

        session()->put('cart', $cart);

        return redirect()->back()->with('success', 'Product added to cart successfully!');
    ;}


    if(isset($cart[$id])&&($cart[$id]['size']!==$request->productSize)) {
        $cart = [ 
            $id => [
                "name" => $product->productName,
                "price" => $product->productPrice,
                "size" => $request->productSize,
                "quantity" => $request->productQuantity,
                "photo" => $product->productImage
            ]
            ];

        session()->put('cart', $cart);

        return redirect()->back()->with('success', 'Product added to cart successfully!');
    ;}
当我添加条件时,它显示它实际上是真的,但即使它有不同的大小,它也只是取代了第一个产品

    if(isset($cart[$id])&&($cart[$id]['size']==$request->productSize)) {
        $cart[$id]['quantity'] += $request->productQuantity;

        session()->put('cart', $cart);

        return redirect()->back()->with('success', 'Product added to cart successfully!');
    ;}


    if(isset($cart[$id])&&($cart[$id]['size']!==$request->productSize)) {
        $cart = [ 
            $id => [
                "name" => $product->productName,
                "price" => $product->productPrice,
                "size" => $request->productSize,
                "quantity" => $request->productQuantity,
                "photo" => $product->productImage
            ]
            ];

        session()->put('cart', $cart);

        return redirect()->back()->with('success', 'Product added to cart successfully!');
    ;}

预期结果是在结账前在购物车中显示两个或多个具有相同id但大小不同的相同产品。

您必须在
$cart
中添加一个额外维度,并在结账时对其进行反向工程。您的建议将始终覆盖具有相同id的产品信息。
cart[][$id][…]
。否则,如果您将产品尺寸视为2个完全独立的产品并从中解出来,而不需要额外的阵列尺寸的复杂性,则会更容易。特别是当用户添加或细分购物车中已有产品的数量时。它起作用了我将产品的大小添加到$cart中,并修复了问题谢谢!!您必须在
$cart
中添加一个额外维度,并在结账时对其进行反向工程。您的建议将始终覆盖具有相同id的产品信息。
cart[][$id][…]
。否则,如果您将产品尺寸视为2个完全独立的产品并从中解出来,而不需要额外的阵列尺寸的复杂性,则会更容易。特别是当用户添加或细分购物车中已有产品的数量时。它起作用了我将产品的大小添加到$cart中,并修复了问题谢谢!!