1

我在 yii 上做一个项目,在管理 Url Manager 时遇到了一些问题。这是 Yii 的默认URL 管理器代码

'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

然后它将带我到所需的地方。

但是上述 URL 管理器的问题是,如果我将使用 URL,localhost/project/admin/showMe/view/id/24someAlphabets 那么它也会将我带到所需的位置,因为 URL 管理器会找到数字。

问题:-
那么我如何更改 URL 管理器,以便只有在我传递数字而不是字母时才能将我带到所需的位置?

4

1 回答 1

1

\d+将匹配字符串中的任何数字,并忽略任何其他字母。如果您只想匹配数字而不匹配其他任何内容,则必须使用字符串开头 ( ^) 和字符串结尾 ( $) 锚点:

'<controller:\w+>/<id:^\d+$>'=>'<controller>/view',
于 2014-01-10T12:59:32.493 回答