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

Исключение BadRequestHttpException

Исключение BadRequestHttpException выбрасывается, когда клиент отправил некорректный запрос: неверные параметры, отсутствующие обязательные поля, битый JSON. Наследуется от HttpException и автоматически устанавливает статус-код ответа 400. Первым параметром принимает сообщение об ошибке, вторым - предыдущее исключение, третьим - заголовки ответа.

Синтаксис

<?php use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; throw new BadRequestHttpException( string $message = '', Throwable $previous = null, int $code = 0, array $headers = [] ); ?>

Пример

Давайте выбросим исключение, если обязательный параметр id не передан в запросе:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_show')] public function show(Request $request): Response { $id = $request->query->get('id'); if ($id === null) { throw new BadRequestHttpException('Parameter "id" is required'); } return new Response('article ' . $id); } } ?>

Результат выполнения кода для адреса /article?id=5:

article 5

Пример

Давайте обработаем некорректный JSON в теле запроса и выбросим исключение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/create', name: 'article_create', methods: ['POST'])] public function create(Request $request): Response { $data = json_decode($request->getContent(), true); if (json_last_error() !== JSON_ERROR_NONE) { throw new BadRequestHttpException('Invalid JSON payload'); } return new Response('created'); } } ?>

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

{"status":400,"error":"Bad Request","message":"Invalid JSON payload"}

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

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить