Метод getQueryString
Метод getQueryString класса Request возвращает строку
запроса (query string) текущего URL. Строка запроса - это часть
адреса после знака ?, содержащая параметры в виде пар
ключ=значение, разделённых знаком &. Метод не
принимает параметров и возвращает строку или null, если
строка запроса отсутствует.
Синтаксис
public function getQueryString(): ?string
Пример
Давайте получим строку запроса для адреса
/user?name=abcde&age=25:
<?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('/user', name: 'article_user')]
public function user(Request $request): Response
{
$res = $request->getQueryString();
return new Response($res);
}
}
?>
Результат выполнения кода для адреса
/user?name=abcde&age=25:
name=abcde&age=25
Пример
Давайте проверим, что вернёт метод, если строка запроса отсутствует:
<?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('/user', name: 'article_user')]
public function user(Request $request): Response
{
$res = $request->getQueryString();
if ($res === null) {
return new Response('no query string');
}
return new Response($res);
}
}
?>
Результат выполнения кода для адреса /user:
"no query string"
Пример
Давайте разберём строку запроса на отдельные параметры
с помощью функции parse_str:
<?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('/user', name: 'article_user')]
public function user(Request $request): Response
{
$queryString = $request->getQueryString();
$res = [];
parse_str($queryString ?? '', $res);
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода для адреса
/user?name=abcde&age=25:
{"name":"abcde","age":"25"}
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
get,
который возвращает параметр запроса -
метод
getRequestUri,
который возвращает URI запроса -
метод
getUri,
который возвращает полный URI запроса