Récupérer le nom de la route Symfony dans un template Twig
Publié le 09/01/2020 • Actualisé le 09/01/2020
Parfois, il est utile de récupérer le nom de la route à partir d'un template Twig. Par exemple dans le layout ou l'on ne "reçoit" pas ce nom de route à partir d'un contrôleur. Ça permet, par exemple, de mettre une classe "actif" sur des liens de menu en fonction du contexte. J'utilise cette astuce sur ce site. Comme vous pouvez le voir, l'entrée "snippet" du menu est surlignée. Dans ce cas, je teste si la route commence par snippet_
puisque toutes les routes de ce contrôleur sont préfixées par cette chaîne grâce à l'annotation @route mise en place au niveau de la classe contrôleur :
* @Route("/{_locale}/snippets", name="snippet_", requirements={"_locale"="%locales_requirements%"})
<ul>
<li>Current route (short version): <b>{{ app.request.get('_route') }}</b></li>
<li>Current route: <b>{{ app.request.attributes.get('_route') }}</b></li>
</ul>
- Current route (short version): snippet_show
- Current route: snippet_show
Plus sur Stackoverflow Lire la doc Snippet aléatoire