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 關注
- 299 瀏覽
添加回答
舉報