【问题标题】:How to modify URL manager to accept only numbers and not alphabets in yii如何在 yii 中修改 URL 管理器以仅接受数字而不接受字母
【发布时间】:2014-01-10 20:59:32
【问题描述】:

我在 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

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

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

问题:-
那么我该如何更改 URL经理,只有当我传递数字而不是字母时,它才能带我到所需的地方?

【问题讨论】:

    标签: php yii yii-url-manager


    【解决方案1】:

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

    '<controller:\w+>/<id:^\d+$>'=>'<controller>/view',
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 2022-11-02
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多