我正在研究yii中的一个项目,在管理Url Manager时我遇到了一些问题。这是Yii默认的 Url manager 代码
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
现在问题在于将id作为参数的URL。假设我的网址是
localhost/project/admin/showMe/view/id/24
然后它会把我带到理想的地方。localhost/project/admin/showMe/view/id/24someAlphabets
之类的网址
然后它也会带我到达所需的位置因为URL管理器找到了数字。答案 0 :(得分:1)
\d+
将匹配字符串中的任何数字,并将忽略任何其他字母。如果您只想匹配数字而不是其他内容,则必须使用字符串开头(^
)和字符串结尾($
)锚点:
'<controller:\w+>/<id:^\d+$>'=>'<controller>/view',