Symfony2 - Get de l'URL en cours ou en voie de template TWIG?
Mon itinéraire est
admin:
path: /admin/
defaults: { _controller: CatalogWebBundle:Admin:admin }
Comment je peux obtenir le nom de l'itinéraire dans le template PHP ?
Je suppose que dans twig, vous pouvez utiliser
app.request.attributes.get('_route')
de template php vous pouvez dériver le code équivalentOriginalL'auteur Wizard | 2015-03-07
Vous devez vous connecter pour publier un commentaire.
Pour obtenir l'URL actuelle
$request->getRequestUri();
ouapp.request.uri
Comme pour la route elle-même, la meilleure pratique consiste à injecter en tant que paramètre dans votre contrôleur, reportez-vous la doc ici. Vous pouvez utiliser
$request->attributes->get('_route')
ouapp.request.attributes.get('_route')
mais il n'est pas fiable, par exemple, il ne fonctionne pas avec l'avant que vous transférez à un contrôleur, pas un chemin d'accès. Et c'est vraiment seulement signifiait à des fins de débogage selon Fabien (@fabpot), le créateur, je ne voudrais pas compter sur elle pour les futures mises à niveau de l'amour.Note
N'oubliez pas de éviter de
$request->get()
tout moment, vous pouvez, donc pas de$request->get('_route')
que j'en ai vu dans des réponses à des questions similairesLa raison étant qu'il va regarder dans dit public propriétés (attributs de la requête & demande) au lieu de l'un (attributs), ce qui rend beaucoup plus lent
Utiliser le RequestStack si dans un service. La demande est la voie à suivre pour les contrôleurs.
OriginalL'auteur Tom Toms
Pas une bonne chose à faire directement dans Twig, mais vous pouvez toujours le faire. La meilleure façon est de le passer en argument à partir du contrôleur.
Obtenir les paramètres de la route dans Twig.
ET
Obtient ensemble nom dans Twig.
Obtenir le nom de l'itinéraire dans Twig.
OriginalL'auteur BentCoder
Pour obtenir le Nom de la Route dans Symfony2 entrer dans l'extrait de code suivant
Pour obtenir l'URL dans Symfony2,
OriginalL'auteur kisanme
Ajoutant que, dans certains cas,
app.request.uri
ne sera pas de retour l'url de la page en cours.Exemple: dans votre modèle de page, vous appelez un contrôleur via:
Et dans
myBlockAction
, vous effectuez le rendu d'un autre modèle, direblock.html.twig
.Un appel à
app.request.uri
deblock.html.twig
affichera quelque chose comme:Si vous voulez obtenir l'url absolue de la page affichée à partir de l'intérieur de
block.html.twig
, vous pouvez remonter à partir de php $_SERVER variables:Vous pouvez également ajouter
QUERY_STRING
si nécessaire.OriginalL'auteur scandel