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

Параметр name атрибута Route

Атрибут Route вешается на метод контроллера и задаёт адрес страницы. Параметр name задаёт уникальное имя маршрута. Это имя используется для генерации URL через функцию path в Twig или метод generate сервиса UrlGenerator. Имена маршрутов должны быть уникальными в пределах приложения.

Синтаксис

#[Route(path, name: name)]

Пример

Давайте создадим маршрут с именем 'article_index':

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

Теперь этот маршрут можно сгенерировать по имени:

<a href="{{ path('article_index') }}">Home</a>

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

<a href="/">Home</a>

Пример

Давайте создадим маршрут с параметром и именем 'article_show':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_show')] public function show(int $id): Response { return new Response('article ' . $id); } } ?>

Сгенерируем URL с передачей параметра id:

<a href="{{ path('article_show', {id: 5}) }}">Article</a>

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

<a href="/article/5">Article</a>

Пример

Давайте сгенерируем URL по имени маршрута из контроллера с помощью метода generate:

<?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('/article/{id}', name: 'article_show')] public function show(int $id): Response { return new Response('article ' . $id); } #[Route('/link', name: 'article_link')] public function link(UrlGeneratorInterface $urlGenerator): Response { $res = $urlGenerator->generate('article_show', ['id' => 10]); return new Response($res); } } ?>

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

"/article/10"

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

  • атрибут Route,
    который вешает метод контроллера на указанный URL
  • параметр path,
    который задаёт путь маршрута
  • параметр methods,
    который ограничивает маршрут HTTP-методами
  • класс UrlGenerator,
    который генерирует URL по имени маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить