Récupérer le nom de la route Symfony dans un template Twig

Publié le 09/01/2020 • Actualisé le 09/01/2020


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

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>
Démo HTML du snippet
  • Current route (short version): snippet_show
  • Current route: snippet_show

 Plus sur Stackoverflow   Lire la doc  Snippet aléatoire

  Travaillez avec moi !