2017-08-22 4 views
-1

Bonjour, Je suis en train d'envoyer des paramètres multiples de brindille comme ceComment passer plusieurs paramètres de route dans twig?

<a href={{path('myRoute',{'param1':param1,'param2':param2})}}>Link</a> 

je déclarer mon contrôleur comme suit:

/** 
    * @Route("/categoria/{param1}", name="categoria") 
    */ 
public function taskAction($param1){ 

} 

Mais comment puis-je envoyer le deuxième paramètre et non compris dans la route, jusqu'à ce qui se passe est que je reçois une débandade comme celui-ci

/categoria/param1?param2=1 

et j'attendre une route comme

/categoria/param1 

et d'accéder au deuxième paramètre mais je ne veux pas que le deuxième paramètre apparaisse dans la route.

+2

vous ne pouvez pas passer un paramètre get sans le voir dans l'url ... –

+0

ok, merci @ t-n-y je pense que je dois l'inclure dans le parcours ou chercher d'autre option non? –

+0

cela dépend de vos besoins, je ne sais pas quel est ce paramètre. mais vous pouvez le passer dans la route ou par exemple le passer en session ... cela dépend de vos besoins –

Répondre

0

Je ne comprends pas exactement ce que vous voulez, mais une solution possible serait:

Envoyer une demande ajax lorsque vous appuyez sur le lien avec les paramètres que vous souhaitez. Ensuite, dans votre contrôleur, vous aurez quelque chose comme ça

public function taskAction(Request $request){ 

} 

retour Enfin une réponse à votre vue

donnant peut-être quelques informations sur les fonctionnalités que vous voulez réaliser nous aider à comprendre

0

Essayez cette

/** 
* 
* @Route("/category/{id}", name="category_delete") 
*/  
public function myAction(Request $request, Category $category) 
{ 
    $param1 = $request->get('param1'); 
    $param2 = $request->get('param2'); 
     . 
     . 
    $paramN = $request->get('paramN'); 
} 
0

Vous devez passer le premier param dans le cadre de l'itinéraire comme vous l'avez déjà fait et vous devez envoyer une requête POST lorsque l'utilisateur clique sur le lien (en utilisant javascript) pour envoyer d'autres paramètres par la poste. Cochez cette case comme exemple: https://gist.github.com/hellomedia/048906b9449463cd5792

ou vous pouvez implémenter une logique similaire à celle que vous souhaitez.