РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
194 of 1392 menu

Метод attach

Метод attach применяется к объекту отношения типа belongsToMany и позволяет привязать одну или несколько связанных моделей к текущей модели. Первым параметром передаётся идентификатор или массив идентификаторов связываемых моделей, вторым - массив дополнительных данных для промежуточной таблицы. Метод возвращает массив с информацией о прикреплённых записях.

Синтаксис

<?php $model->relation()->attach($id, $pivotData); ?>

Пример с одним идентификатором

Давайте привяжем роль с идентификатором 1 к пользователю:

<?php namespace App\Http\Controllers; use App\Models\User; class UserController extends Controller { public function attachRole() { $user = User::find(1); $user->roles()->attach(1); echo "Role attached successfully"; } } ?>

Результат выполнения кода:

"Role attached successfully"

Пример с массивом идентификаторов

Давайте привяжем несколько ролей к пользователю:

<?php namespace App\Http\Controllers; use App\Models\User; class UserController extends Controller { public function attachRoles() { $user = User::find(1); $user->roles()->attach([1, 2, 3]); echo "Roles attached successfully"; } } ?>

Результат выполнения кода:

"Roles attached successfully"

Пример с дополнительными данными pivot

Давайте привяжем роль к пользователю с дополнительными данными в промежуточной таблице:

<?php namespace App\Http\Controllers; use App\Models\User; class UserController extends Controller { public function attachRoleWithPivot() { $user = User::find(1); $user->roles()->attach(1, [ 'assigned_by' => 'admin', 'priority' => 1 ]); echo "Role attached with pivot data"; } } ?>

Результат выполнения кода:

"Role attached with pivot data"

Пример с получением результата attach

Метод attach возвращает массив с информацией о прикреплённых записях:

<?php namespace App\Http\Controllers; use App\Models\User; class UserController extends Controller { public function attachWithResult() { $user = User::find(1); $res = $user->roles()->attach(1); print_r($res); } } ?>

Результат выполнения кода:

["attached" => [1], "updated" => [], "detached" => []]

Смотрите также

  • метод detach,
    который отвязывает связанные модели
  • метод sync,
    который синхронизирует связи с заданными моделями
  • метод toggle,
    который переключает состояние связей
  • метод updateExistingPivot,
    который обновляет данные в промежуточной таблице
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить