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

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

Метод generate класса UrlGenerator создаёт URL на основе имени маршрута и переданных параметров. Первым параметром передаётся имя маршрута, вторым - массив параметров для подстановки в путь, третьим - режим генерации (константа класса). Метод возвращает строку с готовым URL.

Синтаксис

public function generate(string $name, array $parameters = [], int $referenceType = self::ABSOLUTE_PATH): string

Пример

Давайте сгенерируем 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 в маршрут с плейсхолдером:

<?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"

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

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