Параметр prefix атрибута Route
Параметр prefix атрибута Route задаёт общий префикс пути для всех маршрутов, объявленных внутри одного класса контроллера. Атрибут Route вешается на сам класс, а значение prefix автоматически добавляется в начало каждого маршрута методов этого класса. Это удобно, когда все действия контроллера относятся к одному разделу сайта, например /user или /article.
Синтаксис
#[Route(prefix: '/prefix')]
Пример
Давайте зададим префикс '/article' для класса контроллера и повесим метод на адрес '/article/show':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
#[Route(prefix: '/article')]
class ArticleController extends AbstractController
{
#[Route('/show', name: 'article_show')]
public function show(): Response
{
return new Response('article');
}
}
?>
Результат выполнения кода для адреса /article/show:
"article"
Пример
Давайте добавим префикс '/user' к контроллеру с двумя методами:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
#[Route(prefix: '/user')]
class UserController extends AbstractController
{
#[Route('/list', name: 'user_list')]
public function list(): Response
{
return new Response('user');
}
#[Route('/{id}', name: 'user_show')]
public function show(int $id): Response
{
return new Response('abcde');
}
}
?>
Результат выполнения кода для адреса /user/list:
"user"
Результат выполнения кода для адреса /user/5:
"abcde"
Смотрите также
-
атрибут
Route,
который вешает метод контроллера на указанный URL -
параметр
path,
который задаёт путь маршрута -
параметр
name,
который задаёт имя маршрута -
параметр
requirements,
который задаёт требования к параметрам маршрута