Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel:计算购物篮中物品数量的正确方法/多对多关系_Laravel_Many To Many - Fatal编程技术网

Laravel:计算购物篮中物品数量的正确方法/多对多关系

Laravel:计算购物篮中物品数量的正确方法/多对多关系,laravel,many-to-many,Laravel,Many To Many,我正在开发我的第一个Laravel应用程序。它包括一个购物篮 目前,我有一个称为订单的模型和一个称为产品的模型,这两个模型都有多对多的关系 当我向订单中添加项目时,它们是重复的: // Returned with: // $order = Order::with('User','Products')->find($id); // return $order; { "id":1, "user_id":1, "notes":"This is a test orde

我正在开发我的第一个Laravel应用程序。它包括一个购物篮

目前,我有一个称为订单的模型和一个称为产品的模型,这两个模型都有多对多的关系

当我向订单中添加项目时,它们是重复的:

// Returned with:
// $order = Order::with('User','Products')->find($id);
// return $order;

{  
    "id":1,
    "user_id":1,
    "notes":"This is a test order",
    "order_type":0,
    "user":{  
        "id":1,
        "first_name":"Dave",
        "created_at":"2014-11-05 15:23:50",
        "updated_at":"2014-11-05 15:23:50"
    },
    "products":[  
        {  
            "id":1,
            "name":"Cheese Wotsits",
            "pivot":{  
                "order_id":1,
                "product_id":1
            }
        },
        {  
            "id":1,
            "name":"Cheese Wotsits",
            "pivot":{  
                "order_id":1,
                "product_id":1
            }
        }
    ]
}
我将如何按照以下思路修改上述内容:

    ...
    "products":[  
        {  
            "id":1,
            "name":"Cheese Wotsits",
            "count":2,
            "pivot":{  
                "order_id":1,
                "product_id":1
            }
        },
    ]
    ...

我应该向数据透视表添加计数吗?还是让Laravel做自己的事情,在另一端计算数据?或者,希望有一种很好的方法可以做到这一点

我不知道有什么办法可以和拉雷维尔在一起,但你能说的就是你说的。向数据透视表添加计数似乎是最简单的方法,可能不是最干净的方法。然后,如果要获取计数,请在模型中的关系方法的返回方法末尾添加withPivot方法。此外,我认为您将无法在数据透视表中添加重复的关系。请向数据透视表中添加计数。向订单添加产品时,请检查该产品是否已存在,并适当增加数量。在此处再次投票支持计数。我认为这绝对比多次使用相同的pivot表记录更好。还要考虑的是:如果您的篮子中有某种计数,用户可以轻松地增加/减少,那么最好只修改数据库中的计数器,而不是添加和删除行