114 votes

Ajouter plus d'un paramètre dans le chemin Twig

Comment ajouter plus d'un paramètre dans le chemin Twig?
Disons que vous avez cette route:

 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 si vous avez ceci dans votre fichier de routage:

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

On dirait qu'ils n'ont pas couvert cela dans leur documentation.

192voto

Elnur Abdurrakhimov Points 23540

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

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

8voto

Tac Tacelosky Points 733

Pensez à faire votre itinéraire:

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

puisque 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)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X