Функция abort
Функция abort применяется в контроллерах, маршрутах или middleware
для остановки выполнения запроса при возникновении ошибки или
недопустимых условий. Первым параметром передаётся HTTP-код состояния,
вторым - сообщение для ответа, третьим - массив заголовков.
По умолчанию функция возвращает ответ с кодом 500.
Синтаксис
<?php
abort($code, $message, $headers);
?>
Пример
Давайте прервём выполнение запроса с кодом 404, если запись не найдена:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function show($id)
{
$article = Article::find($id);
if (!$article) {
abort(404, 'Article not found');
}
return view('article', ['article' => $article]);
}
}
?>
Результат выполнения кода:
"404 Not Found - Article not found"
Пример
Давайте вернём ошибку 403, если пользователь не является администратором:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class AdminController extends Controller
{
public function dashboard(Request $request)
{
if (!$request->user()->isAdmin()) {
abort(403, 'Access denied');
}
return view('admin.dashboard');
}
}
?>
Результат выполнения кода:
"403 Forbidden - Access denied"
Пример
Давайте используем функцию abort с заголовками для JSON-ответа:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class ApiController extends Controller
{
public function getUser($id)
{
$user = User::find($id);
if (!$user) {
abort(404, 'User not found', [
'X-Error-Code' => 'USER_NOT_FOUND',
'Content-Type' => 'application/json'
]);
}
return response()->json($user);
}
}
?>
Результат выполнения кода:
"404 Not Found - User not found"
"Headers: X-Error-Code: USER_NOT_FOUND"
Смотрите также
-
функция
abort_if,
которая выполняет проверку условия перед прерыванием -
функция
abort_unless,
которая прерывает выполнение, если условие ложно -
функция
response,
которая создаёт HTTP-ответ с указанным содержимым -
функция
redirect,
которая выполняет перенаправление на другой URL