Обновление : Как указано пользователем Twitter AnellyBot , этого можно добиться, передав словарь методу attach
:
$order->items()->attach(
Cart::contents()->mapWithKeys(function ($item) {
return [
$item->id => ['qty' => $item->qty]
];
})->all()
);
В первоначальном ответе говорилось, что вы не можете сделать это с помощью метода attach
.Это явно неверно.
Я оставляю здесь исходный ответ, поскольку код все еще технически корректен.
Метод attach
Eloquent не позволяет добавлять дополнительные атрибуты, которые отличаютсядля каждой прикрепленной записи.
Вам придется либо прикреплять каждую запись напрямую, либо вручную 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()
);
Адаптируйте его под свои нужды.