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

Класс Response

Класс Response представляет собой HTTP-ответ и является центральным объектом при работе с ответами в Symfony. Любой контроллер обязан вернуть объект этого класса или его наследника. Первым параметром в конструктор передаётся содержимое ответа, вторым - статус-код, третьим - массив заголовков.

Синтаксис

new Response(content, status, headers)

Пример

Давайте создадим простой ответ с текстом 'hello':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { return new Response('hello'); } } ?>

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

hello

Пример

Давайте передадим статус-код 404 и заголовок Content-Type:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/user', name: 'article_user')] public function user(): Response { return new Response( 'article', Response::HTTP_NOT_FOUND, ['Content-Type' => 'text/plain'] ); } } ?>

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

"article"

Пример

Давайте изменим содержимое и статус-код уже созданного ответа с помощью методов setContent и setStatusCode:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/page', name: 'article_page')] public function page(): Response { $res = new Response(); $res->setContent('abcde'); $res->setStatusCode(Response::HTTP_OK); return $res; } } ?>

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

"abcde"

Пример

Давайте создадим ответ в формате JSON с помощью наследника JsonResponse:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/data', name: 'article_data')] public function data(): JsonResponse { return new JsonResponse([ 'id' => 1, 'title' => 'article', 'active' => true, ]); } } ?>

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

{"id":1,"title":"article","active":true}

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

  • метод setContent,
    который задаёт содержимое ответа
  • метод setStatusCode,
    который задаёт статус-код ответа
  • класс JsonResponse,
    который возвращает ответ в формате JSON
  • класс RedirectResponse,
    который выполняет перенаправление на другой URL
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить