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

Метод findOrFail

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

Синтаксис

<?php Model::findOrFail($id); ?>

Пример

Давайте найдём статью с id равным 1:

<?php use App\Models\Article; $article = Article::findOrFail(1); echo $article->title; ?>

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

"article 1"

Пример

Если запись с указанным id не существует, метод выбрасывает исключение:

<?php use App\Models\Article; $article = Article::findOrFail(999); echo $article->title; ?>

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

"Illuminate\Database\Eloquent\ModelNotFoundException"

Пример

Метод findOrFail часто используется в контроллерах для автоматической обработки ситуации, когда запись не найдена. Исключение перехватывается Laravel и возвращает страницу 404:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function show($id) { $article = Article::findOrFail($id); return view('article.show', ['article' => $article]); } } ?>

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

"View rendered with article data"

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

"404 Not Found page"

Пример

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

<?php use App\Models\Article; $article = Article::where('status', 'published') ->findOrFail(1); echo $article->title; ?>

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

"article 1"

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

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