Метод getUri
Метод getUri класса Request возвращает полный URI текущего запроса в виде строки. Он объединяет схему, хост, порт, путь и строку запроса в единый адрес. Метод не принимает параметров и всегда возвращает строку.
Синтаксис
public function getUri(): string
Пример
Давайте получим полный URI запроса в контроллере:
<?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
{
$uri = $request->getUri();
return new Response($uri);
}
}
?>
Результат выполнения кода для адреса /article?page=1:
"http://localhost/article?page=1"
Пример
Давайте выведем URI вместе с методом запроса:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(Request $request): Response
{
$method = $request->getMethod();
$uri = $request->getUri();
return new Response($method . ' ' . $uri);
}
}
?>
Результат выполнения кода для POST-запроса на адрес /user:
"POST http://localhost/user"
Пример
Давайте сравним URI с путём и строкой запроса по отдельности:
<?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 = [
'uri' => $request->getUri(),
'path' => $request->getPathInfo(),
'query' => $request->getQueryString(),
];
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода для адреса /article?page=1:
{"uri":"http://localhost/article?page=1","path":"/article","query":"page=1"}
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
getRequestUri,
который возвращает URI запроса без хоста -
метод
getSchemeAndHttpHost,
который возвращает схему и хост запроса -
метод
getQueryString,
который возвращает строку запроса