参数化yii2中的路由

时间:2018-04-03 14:15:51

标签: yii2 routes url-routing

遵循此guide但不确定如何在以下方案中参数化我的路线

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
        "login" => "site/login",
        "sign-up" => "site/sign-up",
        "search" => "site/search",
        "verify-email" => "site/verify-email",
    ],
],

这四条规则基本上具有相同的结构: 如果访问Action控制器中的Site,那么该网址将只是www.mydomain.com/<action>

我尝试创建规则

'<action:\w+>' => '<site:\w+>/<action:\w+>',

......没有成功的尝试

'<action:(login|sign-up|search|verify-email)>' => 'site/<action:(login|sign-up|search|verify-email)>',

但只有“找不到页面”(#404)错误。

不胜感激任何建议。 感谢。

1 个答案:

答案 0 :(得分:1)

'<action:(login|sign-up|search|verify-email)>' => 'site/<action>',
 ^                                                 ^
 |                                                 |
 pattern                                           route 

路由不应包含任何正则表达式模式(如<paramName:\w+>),您可以使用<paramName>将param值插入路由,但不能在路由中使用任何正则表达式。