'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
}
提前谢谢。
答案 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']);