Ajouter plusieurs paramètres dans le chemin Twig


107

Comment ajouter plus d'un paramètre dans le chemin Twig?
Disons que vous avez cet itinéraire:

article_show:
    pattern:  /article/{slug}
    defaults: { _controller: AcmeArticleBundle:Article:show }

Vous pouvez le faire dans votre modèle de brindille:

{{ path('article_show', { 'slug': article.slug }) }}

mais que faire si vous avez ceci dans votre fichier de routage:

_files_manage:
    pattern: /files/management/project={idproject}&user={iduser}
    defaults: { _controller: AcmeTestBundle:File:manage }

Il semble qu'ils ne l'ont pas couvert dans leur documentation.


1
Avez-vous manqué de deviner ("?") Avant le projet?
Jean-Luc Barat

Réponses:


184

Vous pouvez passer autant d'arguments que vous le souhaitez, en les séparant par des virgules:

{{ path('_files_manage', {project: project.id, user: user.id}) }}

8

Pensez à faire votre itinéraire:

_files_manage:
    pattern: /files/management/{project}/{user}
    defaults: { _controller: AcmeTestBundle:File:manage }

car ce sont des champs obligatoires. Cela rendra votre URL plus jolie et sera un peu plus facile à gérer.

Votre contrôleur ressemblerait alors à

 public function projectAction($project, $user)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.