1 回答

TA贡献1859条经验 获得超6个赞
您可以通过将字典传递给该attach方法来实现此目的:
$order->items()->attach(
Cart::contents()->mapWithKeys(function ($item) {
return [
$item->id => ['qty' => $item->qty]
];
})->all()
);
原来的答案说你不能用这个attach方法来做到这一点。这显然是错误的。
我将原始答案留在这里,因为代码在技术上仍然是正确的。
Eloquent 的attach方法不允许为每个附加记录添加不同的额外属性。
您必须直接附加每条记录,或者insert自己手动附加数据透视表中的记录。
下面是一些帮助您入门的代码:
$order->items()->newPivotStatement()->insert(
Cart::content()->map(function ($item) use ($order) {
return [
'order_id' => $order->id,
'item_id' => $item->id,
'qty' => $item->qty,
];
})->all()
);
使其适应您的需求。
- 1 回答
- 0 关注
- 287 浏览
添加回答
举报