Laravel:计算购物篮中物品数量的正确方法/多对多关系
我正在开发我的第一个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
// 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表记录更好。还要考虑的是:如果您的篮子中有某种计数,用户可以轻松地增加/减少,那么最好只修改数据库中的计数器,而不是添加和删除行