雄辩地解决复合键,创建新行不起作用,但更新确实如此

时间:2018-05-08 19:09:21

标签: php laravel eloquent

我有两张桌子:

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]);

0 个答案:

没有答案