我正在为这个问题而苦苦挣扎,但找不到任何合适的答案。
我希望my_site / user / 1成为my_site / user / user_name
我的urlManager看起来像这样:
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
'user/<username:\w+>'=>'user/view',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
'showScriptName' => false,
),
用户控制器:
public function actionView($username)
{
$this->render('view', array(
'model' => $this->loadModel($username),
));
}
当我点击/ user / admin时,它会将我重定向到actionView而不是从我的控制器重定向到actionAdmin,并且我有多个此类操作,例如创建,删除等。我如何避免这种情况?有其他选择吗?
谢谢。
urlManager尝试将url与控制器和操作进行匹配。第一部分
'user/<username:\w+>'=>'user/view',
已与用户控制器匹配,并在下一部分匹配它以查找包含单词的任何字符串,然后将用户发送给用户/视图
我建议将其更改user/<username>
为manage-user/<username>
或my-account/<username>
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句