$order->items ()->make ([...]) 的疑问
下面这段代码是教材里的写法
$sku = ProductSku::find($data['sku_id']);
// 创建一个 OrderItem 并直接与当前订单关联
$item = $order->items()->make([
'amount' => $data['amount'],
'price' => $sku->price,
]);
$item->product()->associate($sku->product_id);
$item->productSku()->associate($sku);
$item->save();
感觉不够简洁,于是我简化成如下这段
$sku = ProductSku::find($data['sku_id']);
$order->items()->make([
'amount' => $data['amount'],
'price' => $sku->price,
'product_id'=>$sku->product->id, //外键1赋值无效
'product_sku_id'=>$sku->id, //外键2赋值无效
])->save();
可为什么这样写就不行呢?程序报错:'product_id' doesn't have a default value
可我明明在数组里面给外键1和外键2都设过值了,为什么会无效呢?
推荐文章: