Php Laravel更新同一归属关系的多个
我有一个Php Laravel更新同一归属关系的多个,php,laravel,relationship,has-and-belongs-to-many,Php,Laravel,Relationship,Has And Belongs To Many,我有一个订单表和一个产品表,我将它们之间的关系设置为归属关系很好 但是,一个订单可以多次拥有相同的产品(如果他们想订购更多,管理员可以提供折扣) 例如: Order 1 has Product 1 x 5 (£1 each = £5 total) Product 1 x 2 (£0.75 each = £1.50 total) 如何更新单行?我尝试了以下操作,但这会更新所有行,因为它只接受产品ID: $order->products()->updateExistingPivot(
订单
表和一个产品
表,我将它们之间的关系设置为归属关系
很好
但是,一个订单可以多次拥有相同的产品(如果他们想订购更多,管理员可以提供折扣)
例如:
Order 1 has
Product 1 x 5 (£1 each = £5 total)
Product 1 x 2 (£0.75 each = £1.50 total)
如何更新单行?我尝试了以下操作,但这会更新所有行,因为它只接受产品ID:
$order->products()->updateExistingPivot($productID, $values);
我也尝试了以下方法,但调用update
方法时,wherePivot
似乎没有多大效果,因为此产品的所有行都已更新
$pivotProduct = $order->products()->wherePivot('id', $pivotId)->first();
$pivotProduct->pivot->price = '0.75';
$pivotProduct->pivot->update();
已通过执行以下操作解决此问题:
$pivotProduct = $order->products()->wherePivot('id', $pivotId)->first();
$pivotProduct->pivot->where('id', $pivotId)->update($values);
第二行确保仅更新具有相同数据透视ID的行