Кріплення / від'єднання
Eloquent також надає кілька додаткових допоміжних методів, щоб зробити роботу із суміжними моделями більш зручною. Наприклад, уявімо, що користувач може мати багато ролей, а роль може мати багато користувачів. Щоб приєднати роль до користувача, вставивши запис у проміжну таблицю, яка приєднує моделі, використовуйте метод приєднання:
$user = App\User::find(1);
$user->roles()->attach($roleId);
Прикріплюючи відношення до моделі, ви також можете передати масив додаткових даних, які потрібно вставити в проміжну таблицю:
$user->roles()->attach($roleId, ['expires' => $expires]);
Ви також можете скористатися синхронізацією, якщо хочете видалити старі ролі та зберегти лише нові, які ви зараз додаєте
$user->roles()->sync([1 => ['expires' => $expires], 2 => ['expires' => $expires]);
Поведінку за замовчуванням можна змінити, передавши 'false' як другий аргумент. Це додасть ролі з ідентифікаторами 1,2,3, не впливаючи на існуючі ролі.
У цьому режимі синхронізація працює так само, як метод приєднання.
$user->roles()->sync([1 => ['expires' => $expires], 2 => ['expires' => $expires], false);
Довідково:
https://laravel.com/docs/5.4/eloquent-relationships