Метод toArray класса Request
Метод toArray класса Request объединяет
все параметры текущего запроса в один ассоциативный
массив. В результат попадают данные из query,
request и attributes. Метод не принимает
параметров и возвращает массив, где ключами являются
имена параметров, а значениями - их значения.
Синтаксис
$res = $request->toArray();
Пример
Давайте получим все параметры GET-запроса в виде массива:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$res = $request->toArray();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода для адреса /article?name=abcde&page=1:
{"name":"abcde","page":"1"}
Пример
Давайте объединим параметры из разных источников запроса:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show')]
public function show(Request $request, int $id): Response
{
$request->query->set('sort', 'asc');
$res = $request->toArray();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода для адреса /article/5?page=2:
{"page":"2","sort":"asc","id":"5"}
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
get,
который возвращает параметр из запроса -
метод
getPayload,
который возвращает тело запроса -
метод
getContent,
который возвращает содержимое запроса