我有两张桌子:
order_items
- product_id
- order_id
- qty_ordered
stock_movements
- product_id
- order_id
- qty_picked
订单商品与库存变动有以下关系:
return $this->hasMany(StockMovement::class, 'product_id', 'product_id')
->where('order_id', '=', $this->order_id);
这适用于获取记录,我也可以增加现有行。
$this->stockMovement()->increment('picked', $int);
...但是,使用create方法,错过了关系的order_id部分。我认为这是因为它在where语句中并不存在。这不起作用......
$this->stockMovement()->create(['picked' => $int]);
我意识到,eloquent不支持复合键,但是有一个优雅的解决方法,而不是手动构建缺少键的查询。即。
$this->stockMovement()->create(['order_id' => $this->order_id, 'picked' => $int]);