Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
187 of 1361 menu
◀ ▶

Метод getUriForPath класса Request

Метод getUriForPath класса Request возвращает абсолютный URI для переданного пути. Первым параметром передаётся путь, для которого нужно построить URI. Метод учитывает схему, хост и порт текущего запроса и возвращает полную строку адреса.

Метод удобно использовать, когда нужно получить абсолютный адрес ресурса относительно корня сайта, например для генерации ссылок в письмах или API-ответах.

Синтаксис

public function getUriForPath(string $path): string

Пример

Давайте получим абсолютный URI для пути '/article':

<?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->getUriForPath('/article'); return new Response($res); } } ?>

Результат выполнения кода для адреса 'https://example.com/article':

"https://example.com/article"

Пример

Давайте получим абсолютный URI для вложенного пути '/user/profile':

<?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 UserController extends AbstractController { #[Route('/user', name: 'user_index')] public function index(Request $request): Response { $res = $request->getUriForPath('/user/profile'); return new Response($res); } } ?>

Результат выполнения кода для адреса 'https://example.com/user':

"https://example.com/user/profile"

Пример

Давайте получим абсолютный URI с нестандартным портом:

<?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 ApiController extends AbstractController { #[Route('/api', name: 'api_index')] public function index(Request $request): Response { $res = $request->getUriForPath('/api/data'); return new Response($res); } } ?>

Результат выполнения кода для адреса 'http://example.com:8080/api':

"http://example.com:8080/api/data"

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

  • метод getUri,
    который возвращает полный URI текущего запроса
  • метод getSchemeAndHttpHost,
    который возвращает схему и хост текущего запроса
  • метод getBaseUrl,
    который возвращает базовый URL текущего запроса
  • класс Request,
    который представляет HTTP-запрос в Symfony
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить