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

Метод generate класса Router

Метод generate класса Router создаёт URL-адрес на основе имени маршрута и массива параметров. Первым параметром передаётся имя маршрута, вторым - массив значений для подстановки в путь. Третьим параметром можно передать флаги генерации, например UrlGeneratorInterface::ABSOLUTE_URL.

Синтаксис

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

Пример

Давайте сгенерируем URL для маршрута с именем 'article_index':

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentRoutingGeneratorUrlGeneratorInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(UrlGeneratorInterface $urlGenerator): Response { $res = $urlGenerator->generate('article_index'); return new Response($res); } } ?>

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

"/article"

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentRoutingGeneratorUrlGeneratorInterface; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_show')] public function show(UrlGeneratorInterface $urlGenerator): Response { $res = $urlGenerator->generate('article_show', ['id' => 5]); return new Response($res); } } ?>

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

"/article/5"

Пример

Давайте сгенерируем абсолютный URL с помощью флага ABSOLUTE_URL:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentRoutingGeneratorUrlGeneratorInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(UrlGeneratorInterface $urlGenerator): Response { $res = $urlGenerator->generate( 'article_index', [], UrlGeneratorInterface::ABSOLUTE_URL ); return new Response($res); } } ?>

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

"http://localhost/article"

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

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