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

Метод firstOrFail

Метод firstOrFail применяется к запросу Eloquent или Query Builder и возвращает первую запись, соответствующую условиям выборки. Если запись не найдена, метод выбрасывает исключение Illuminate\Database\Eloquent\ModelNotFoundException. Это удобно в ситуациях, когда отсутствие записи должно обрабатываться как ошибка, например, при отображении страницы конкретной статьи или пользователя.

Синтаксис

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

Метод firstOrFail не принимает параметров. Он вызывается после применения условий выборки к запросу и возвращает экземпляр модели при успешном нахождении записи.

Пример

Давайте получим статью с id равным 1. Если такая статья существует, мы выведем её заголовок:

<?php use App\Models\Article; try { $article = Article::where('id', 1)->firstOrFail(); echo $article->title; } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) { echo "Article not found"; } ?>

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

"Laravel Basics"

Пример

А теперь попробуем получить статью с несуществующим id равным 999:

<?php use App\Models\Article; try { $article = Article::where('id', 999)->firstOrFail(); echo $article->title; } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) { echo "Article with id 999 not found"; } ?>

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

"Article with id 999 not found"

Пример

Давайте получим первую активную статью с определённым статусом. Если такой статьи нет, будет выброшено исключение:

<?php use App\Models\Article; try { $article = Article::where('status', 'published') ->where('is_active', true) ->firstOrFail(); echo "Found active article: " . $article->title; } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) { echo "No active published articles found"; } ?>

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

"Found active article: Getting Started with Laravel"

Пример

Метод firstOrFail также можно использовать с условиями сортировки, чтобы получить первую запись в определённом порядке:

<?php use App\Models\Article; try { $article = Article::where('category', 'tutorial') ->orderBy('created_at', 'desc') ->firstOrFail(); echo "Latest tutorial: " . $article->title; } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) { echo "No tutorials found"; } ?>

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

"Latest tutorial: Advanced Eloquent Techniques"

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

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