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

Метод doesntExist

Метод doesntExist применяется к запросу Eloquent или Query Builder и возвращает логическое значение true, если ни одна запись не соответствует условиям запроса, и false в противном случае. Это противоположность методу exists. Метод полезен для проверки отсутствия данных перед выполнением каких-либо действий, например, перед созданием новой записи, чтобы избежать дублирования.

Синтаксис

<?php Model::where($column, $operator, $value)->doesntExist(); ?>

Пример

Проверим, существует ли статья с идентификатором 1:

<?php use AppModelsArticle; $res = Article::where('id', 1)->doesntExist(); echo $res; ?>

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

"false"

Так как статья с id равным 1 существует, метод вернул false.

Пример

Проверим, есть ли статьи со статусом 'archived':

<?php use AppModelsArticle; $res = Article::where('status', 'archived')->doesntExist(); echo $res; ?>

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

"true"

Поскольку архивных статей нет, метод вернул true.

Пример

Используем метод для условного создания записи, если она отсутствует:

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function store() { $title = 'article'; if (Article::where('title', $title)->doesntExist()) { $article = new Article(); $article->title = $title; $article->status = 'published'; $article->save(); echo "article created"; } else { echo "article already exists"; } } } ?>

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

"article created"

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

"article already exists"

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

  • метод exists,
    который проверяет наличие записей
  • метод first,
    который возвращает первую найденную запись
  • метод get,
    который выполняет запрос и возвращает коллекцию
  • метод count,
    который возвращает количество записей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить