Для настройки роутинга в Symfony, необходимо выполнить несколько шагов как в контроллере, так и в Twig шаблоне.
1. Настройка роутинга в контроллере:
В контроллере необходимо добавить аннотацию @Route или использовать YAML/PHP/XML конфигурацию для определения маршрутов.
Пример использования аннотации @Route:
namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentRoutingAnnotationRoute; class MyController extends AbstractController { /** * @Route("/my-route", name="my_route") */ public function myAction() { // Ваш код действия контроллера } }
Пример использования YAML конфигурации:
# config/routes.yaml my_route: path: /my-route controller: AppControllerMyController::myAction
2. Использование роутинга в Twig шаблоне:
В Twig шаблоне вы можете использовать функцию path()
или url()
для генерации URL для заданного маршрута.
Пример использования функции path()
:
<a href="{{ path('my_route') }}">My Link</a>
Пример использования функции url()
:
<a href="{{ url('my_route') }}">My Link</a>
Функции path()
и url()
генерируют URL на основе имени маршрута, указанного в аннотации или конфигурации роутинга в контроллере.
3. Генерирование URL с параметрами:
Если ваш маршрут имеет параметры, вы можете передать их в функцию path()
или url()
в качестве второго аргумента в виде ассоциативного массива.
Например, если у вашего маршрута есть параметр {id}
, вы можете передать его в функцию path()
или url()
следующим образом:
<a href="{{ path('my_route', {'id': 123}) }}">My Link</a>
В итоге, при клике на ссылку "My Link", пользователь будет перенаправлен на URL, сгенерированный на основе конфигурации роутинга в контроллере. Если вам потребуется изменить маршрут или его параметры, вы можете сделать это только в одном месте - в контроллере или конфигурации роутинга.