Метод valueOrFail
Метод valueOrFail применяется к запросу Eloquent
и возвращает значение указанного поля для первой найденной
записи. Если запись не найдена, метод выбрасывает
исключение ModelNotFoundException, что удобно для
обработки ситуаций, когда отсутствие данных является
критической ошибкой. Первым параметром передаётся имя
колонки, значение которой нужно получить.
Синтаксис
<?php
Model::where($column, $value)->valueOrFail($columnName);
?>
Пример
Давайте получим название активной статьи по её идентификатору:
<?php
use AppModelsArticle;
$title = Article::where('id', 1)->valueOrFail('title');
echo $title;
?>
Результат выполнения кода:
"Introduction to Laravel"
Пример
Если запись с указанным условием не существует, метод выбрасывает исключение:
<?php
use AppModelsArticle;
$email = Article::where('id', 999)->valueOrFail('email');
echo $email;
?>
Результат выполнения кода:
"Illuminate\Database\Eloquent\ModelNotFoundException: Article not found"
Пример
Метод valueOrFail отлично подходит для использования в контроллерах,
где нужно сразу вернуть 404 ошибку, если данные не найдены:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function show($id)
{
$title = Article::where('id', $id)->valueOrFail('title');
return view('article', ['title' => $title]);
}
}
?>
Смотрите также
-
метод
value,
который возвращает значение поля или null -
метод
firstOrFail,
который возвращает модель или выбрасывает исключение -
метод
findOrFail,
который находит модель по ID или выбрасывает исключение -
метод
pluck,
который возвращает коллекцию значений указанного поля