Yii2找不到动作

时间:2017-03-09 12:34:22

标签: php yii2

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
         '<controller:\w+>/<id:\d+>/<action:\w+>' => '<controller>/<action>',
         '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    ],
],

不清楚为什么 / controller / name-action / id / 1 的引用有效, / controller / 1 / name-action 不起作用,并且没有连字符一切正常,根据行动记录名称 - 行动它是 actionNameAction ??

public function actionNameAction($id) {
    // some code
}

Inline Actions

提前谢谢。

2 个答案:

答案 0 :(得分:1)

\w不包括-

将模式更改为[\w\-]+

答案 1 :(得分:0)

我认为你与zend框架和Yii2混淆。在yii2中它是actionActionName.While在url中使用它,大写字母被改为小写,在它们之前用连字符。 例如, 如果控制器是订单 而行动是OrderAnalysis 那么网址就像订单/订单分析。 此外,只有在将应用程序路由到正确的控制器操作后才会添加任何id或任何其他参数。 现在也出现了你的问题,我想我找到了一个后门 -

  

//创建一个锚定的URL:/index.php?r=post%2Fview&id=100#content ------------------------ -             echo url :: to(['post / view','id'=&gt; 100,'#'=&gt;'content']);