2017-09-14 2 views
0

Je veux être en mesure de séparer les paramètres d'actions par / dans URL pour Yii2 Framework,itinéraire yu avec des paramètres illimités

Par exemple: http://localhost/advanced/backend/web/controller/action/parameter1/parameter2

Ici parameter(1,2,...) ne sont pas seulement id et integer numéros J'ai cherché beaucoup à travers Internet et aussi ici, mais je n'ai pas trouvé une réponse utile que le travail, je l'ai essayé:

'<controller:\w+>/<id:\d+>' => '<controller>/view', 
        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
        '<controller:\w+>/<action:\w+>/*'=>'<controller>/<action>' 

mais il ne fonctionne pas et je devais passer des paramètres comme variables pour obtenir travail

http://localhost/advanced/backend/web/controller/action/?parameterName=value 

Quelqu'un peut-il me aider, le nécessaire pour moi.

Répondre

0

Avec 2 params (ou tout autre nombre connu vraiment), vous pouvez étendre ce modèle:

'<controller:\w+>/<action:\w+>/<param1:\w+>/<param2:\w+>' => '<controller>/<action>', 

avec un nombre illimité de params, je ne pense pas que cela fonctionne avec le UrlRule classe. Vous devez écrire votre propre classe et remplacer. Je ne vois pas pourquoi vous aimeriez avoir un nombre illimité de paramètres de toute façon. Aussi, une url ne peut pas être illimitée longtemps.

--- --- Modifier

Si vous voulez 4 paramètres que vous pouvez utiliser les valeurs par défaut en fonction au lieu d'écrire une nouvelle classe UrlRule

public function actionMyController($param1=null, $param2=null, $param3=null, $param4=null) 
+0

en fait, je ne veux pas avoir des paramètres infinis je veux dire 2-4 paramètre par illimité, Cependant je recherche beaucoup, vous avez raison, pour les paramètres illimités je devrais écrire ma propre classe UrlRule, Merci pour votre bonne réponse – Zahra

+0

vous devez définir votre URL avec les routes YII, sinon il va acheminer. – Bira