Как пробросить параметры количества чего-либо в связующую таблицу в Laravel?

В Laravel для проброса параметров количества чего-либо в связующую таблицу можно воспользоваться методом attach() или sync().

Метод attach() используется для добавления новых записей в связующую таблицу. Он принимает первым аргументом идентификатор модели, а вторым - массив дополнительных данных для заполнения столбцов этой таблицы. В случае, когда необходимо пробросить параметры количества, мы можем использовать замыкание вторым аргументом и задать необходимую логику для заполнения столбцов. Например:

$user->roles()->attach($roleId, ['quantity' => $quantity]);

Метод sync() также используется для работы со связующими таблицами, но в отличие от attach() он полностью перезаписывает записи в связующей таблице. При этом метод sync() также принимает массив идентификаторов моделей как первый аргумент, а вторым - массив дополнительных данных. Используя sync(), мы можем организовать проброс параметров количества следующим образом:

$user->roles()->sync([$roleId => ['quantity' => $quantity]]);

В данном примере метод sync() удалит все существующие записи в связующей таблице и затем создаст новую запись с переданными параметрами количества.

Более детальную информацию вы можете найти в документации Laravel по ссылке: https://laravel.com/docs/8.x/eloquent-relationships#updating-many-to-many-relationships