Yii中的错误404关于urlManager不接受字符串作为id

时间:2013-03-14 05:46:44

标签: url yii

urlManager中的正确规则是什么才能接受字符串ID?它在actionView上显示错误404。网址:/sampleSite/index.php/transaction/I201303001

这就是urlManager的样子:

        'urlManager'=>array(
        'urlFormat'=>'path',
        'showScriptName'=>true,
        'rules'=>array(

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

        ),
    ),

提前致谢!

2 个答案:

答案 0 :(得分:1)

尝试使用regExp接受任何字符串(包括数字)

'rules'=>array(

        '<controller:\w+>/<id:[a-zA-Z0-9-]+>'                     =>'<controller>/view',  
        '<controller:\w+>/<action:\w+>/<id:\d+>'    =>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>/<id:>'       =>'<controller>/<action>', 
        '<controller:\w+>/<action:\w+>'             =>'<controller>/<action>',

    ),

答案 1 :(得分:0)

'rules'=>array(
            '<module:\w+>/<controller:\w+>/<id:\w+>'                     =>'<module>/<controller>/view',  
            '<module:\w+>/<controller:\w+>/<action:\w+>/<id:\w+>'    =>'<module>/<controller>/<action>',
            '<module:\w+>/<controller:\w+>/<action:\w+>'             =>'<module>/<controller>/<action>',
            '<controller:\w+>/<id:\w+>'                     =>'<module:\w+>/<controller>/view',  
            '<controller:\w+>/<action:\w+>/<id:\w+>'    =>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'             =>'<controller>/<action>',

        ),