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

Класс UrlGenerator

Класс UrlGenerator отвечает за генерацию URL-адресов из именованных маршрутов. Он принимает имя маршрута, массив параметров и тип ссылки (абсолютная или относительная). Получить объект можно через сервис router или через RouterInterface. В контроллере удобнее использовать метод generateUrl или функцию url в Twig.

Синтаксис

$urlGenerator->generate(string $name, array $parameters = [], int $referenceType = self::ABSOLUTE_PATH)

Пример

Давайте сгенерируем URL по имени маршрута 'article_index':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(UrlGeneratorInterface $urlGenerator): Response { $url = $urlGenerator->generate('article_index'); return new Response($url); } } ?>

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

"/"

Пример

Давайте передадим параметр name в маршрут '/user/{name}':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class ArticleController extends AbstractController { #[Route('/user/{name}', name: 'article_user')] public function user(UrlGeneratorInterface $urlGenerator): Response { $url = $urlGenerator->generate('article_user', ['name' => 'abcde']); return new Response($url); } } ?>

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

"/user/abcde"

Пример

Давайте сгенерируем абсолютный URL, передав константу ABSOLUTE_URL:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class ArticleController extends AbstractController { #[Route('/user/{name}', name: 'article_user')] public function user(UrlGeneratorInterface $urlGenerator): Response { $url = $urlGenerator->generate( 'article_user', ['name' => 'abcde'], UrlGeneratorInterface::ABSOLUTE_URL ); return new Response($url); } } ?>

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

"http://localhost/user/abcde"

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

  • метод generate,
    который генерирует URL по имени маршрута
  • константа ABSOLUTE_URL,
    которая задаёт абсолютный тип ссылки
  • класс Router,
    который управляет маршрутизацией приложения
  • метод generate,
    который генерирует URL через роутер
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить