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

Метод setData класса JsonResponse

Метод setData класса JsonResponse устанавливает данные, которые будут преобразованы в JSON-строку и отправлены в теле ответа. Первым параметром передаётся значение любого типа: массив, объект, строка или число. Вторым необязательным параметром можно указать формат кодирования (например, json). Метод возвращает объект $this, что позволяет использовать цепочку вызовов.

Синтаксис

public function setData(mixed $data, string $format = null): static

Пример

Давайте создадим JSON-ответ и установим данные в виде массива:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ApiController extends AbstractController { #[Route('/api/data', name: 'api_data')] public function data(): JsonResponse { $res = new JsonResponse(); $res->setData(['a', 'b', 'c', 'd', 'e']); return $res; } } ?>

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

["a","b","c","d","e"]

Пример

Давайте установим данные в виде ассоциативного массива:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ApiController extends AbstractController { #[Route('/api/user', name: 'api_user')] public function user(): JsonResponse { $res = new JsonResponse(); $res->setData([ 'name' => 'abcde', 'age' => 25 ]); return $res; } } ?>

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

{"name":"abcde","age":25}

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ApiController extends AbstractController { #[Route('/api/hello', name: 'api_hello')] public function hello(): JsonResponse { $res = new JsonResponse(['status' => 'ok']); $res->setData(['message' => 'hello']); return $res; } } ?>

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

{"message":"hello"}

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

  • класс JsonResponse,
    который создаёт JSON-ответ
  • метод setEncodingOptions,
    который задаёт опции кодирования JSON
  • метод fromJsonString,
    который создаёт ответ из JSON-строки
  • класс Response,
    который представляет базовый HTTP-ответ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить