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

Метод doesntHave

Метод doesntHave применяется к запросу Eloquent и позволяет выбрать записи, у которых нет связанных записей в указанном отношении. Первым параметром передаётся имя отношения, вторым - оператор сравнения для количества связей, третьим - значение для сравнения. Если оператор не указан, используется равенство 0.

Синтаксис

<?php Model::doesntHave($relation, $operator = '=', $count = 0); ?>

Пример

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

<?php use AppModelsUser; $users = User::doesntHave('articles')->get(); foreach ($users as $user) { echo $user->name; } ?>

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

["John Doe", "Jane Smith", "Bob Johnson"]

Пример

Давайте выберем пользователей, у которых меньше 3 статей, используя оператор '<':

<?php use AppModelsUser; $users = User::doesntHave('articles', '<', 3)->get(); foreach ($users as $user) { echo $user->name . ' - ' . $user->articles->count() . ' articles'; } ?>

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

["John Doe - 0 articles", "Jane Smith - 1 articles", "Bob Johnson - 2 articles"]

Пример

Давайте выберем пользователей, у которых нет комментариев, используя вложенное отношение:

<?php use AppModelsUser; $users = User::doesntHave('comments')->get(); foreach ($users as $user) { echo $user->name; } ?>

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

["Alice Brown", "Charlie Wilson"]

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

  • метод has,
    который проверяет наличие связанных записей
  • метод whereDoesntHave,
    который добавляет дополнительные условия в запрос отсутствия
  • метод whereHas,
    который фильтрует по наличию связанных записей с условиями
  • метод orWhereHas,
    который добавляет условие наличия связей через ИЛИ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить