Метод setContent
Метод setContent класса Response устанавливает
содержимое (тело) HTTP-ответа. Первым параметром
передаётся строка или объект, приводимый к строке.
Метод возвращает сам объект ответа, что позволяет
выстраивать цепочку вызовов.
Если в конструктор Response содержимое не передавалось,
его можно задать позже через setContent. После
установки содержимого можно сразу вернуть ответ
из метода контроллера.
Синтаксис
$response->setContent($content);
Пример
Давайте создадим пустой ответ и установим его содержимое через setContent:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$response = new Response();
$response->setContent('hello');
return $response;
}
}
?>
Результат выполнения кода:
hello
Пример
Давайте сформируем содержимое ответа из нескольких частей:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(): Response
{
$name = 'abcde';
$response = new Response();
$response->setContent('user: ' . $name);
return $response;
}
}
?>
Результат выполнения кода:
user: abcde
Пример
Метод setContent возвращает объект ответа,
поэтому вызовы можно объединять в цепочку:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/page', name: 'article_page')]
public function page(): Response
{
return (new Response())
->setContent('page found')
->setStatusCode(Response::HTTP_OK);
}
}
?>
Результат выполнения кода:
page found
Смотрите также
-
класс
Response,
который представляет HTTP-ответ -
метод
getContent,
который возвращает тело ответа -
метод
setStatusCode,
который задаёт код состояния ответа -
метод
send,
который отправляет ответ клиенту