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

Метод getPayload

Метод getPayload класса Request возвращает ассоциативный массив данных, переданных в теле запроса. Метод не принимает параметров и удобен для чтения данных форматов JSON, form-urlencoded и других, которые Symfony умеет разбирать автоматически.

Синтаксис

public function getPayload(): array

Пример

Давайте получим данные из тела POST-запроса с типом содержимого application/json:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $res = $request->getPayload()->all(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода для тела запроса {"name":"abcde","text":"article"}:

{"name":"abcde","text":"article"}

Пример

Давайте получим одно конкретное значение из тела запроса по ключу:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $name = $request->getPayload()->get('name'); return new Response($name); } } ?>

Результат выполнения кода для тела запроса {"name":"abcde","text":"article"}:

"abcde"

Пример

Давайте проверим наличие ключа в теле запроса перед его чтением:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $payload = $request->getPayload(); if ($payload->has('text')) { $res = $payload->get('text'); } else { $res = 'hello'; } return new Response($res); } } ?>

Результат выполнения кода для тела запроса {"name":"abcde"}:

"hello"

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

  • класс Request,
    который представляет HTTP-запрос
  • метод get,
    который возвращает параметр из запроса
  • метод getContent,
    который возвращает тело запроса строкой
  • метод toArray,
    который возвращает параметры запроса массивом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить