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

Метод detach

Метод detach применяется к объекту отношения belongsToMany и удаляет записи из промежуточной таблицы (pivot-таблицы), соответствующие указанным связанным моделям. Если передать идентификаторы моделей, будут удалены только связи с этими моделями. Если вызвать метод без параметров, будут удалены все связи для текущей модели. Метод возвращает количество удалённых записей.

Синтаксис

<?php $model->relation()->detach($ids); ?>

Пример

Давайте удалим все связи у пользователя с id равным 1:

<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function detachAll() { $user = User::find(1); $res = $user->roles()->detach(); echo $res; } } ?>

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

"3"

Пример

Давайте удалим связь пользователя с конкретной ролью, у которой id равен 2:

<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function detachOne() { $user = User::find(1); $res = $user->roles()->detach(2); echo $res; } } ?>

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

"1"

Пример

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

<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function detachMultiple() { $user = User::find(1); $ids = [2, 3, 5]; $res = $user->roles()->detach($ids); echo $res; } } ?>

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

"3"

Пример

Метод detach также можно использовать с дополнительными условиями через метод wherePivot:

<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function detachWithCondition() { $user = User::find(1); $res = $user->roles() ->wherePivot('created_at', '<', '2024-01-01') ->detach(); echo $res; } } ?>

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

"2"

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

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