具有无限参数的yii路由



我希望能够通过URLYii2 Framework/来分隔动作参数,

例如:http://localhost/advanced/backend/web/controller/action/parameter1/parameter2

这里的parameter(1,2,...)不仅仅是idinteger数字 我在互联网上搜索了很多,也在这里搜索了很多,但我没有找到有用的答案,我尝试过这个:

'<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>' 

但它不起作用 我必须传递参数作为获取变量才能工作

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

谁能帮我,这对我来说是必要的。

使用 2 个参数(或任何已知的数字),您可以扩展此模式:

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

有无限数量的参数,我认为它不适用于 UrlRule-class。您需要编写自己的类并替换。无论如何,不明白为什么你想要无限数量的参数。此外,网址不能无限长。

---编辑---

如果你想要 4 个参数,你可以在函数中使用默认值,而不是编写一个新的 UrlRule 类

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

最新更新