2013-03-14 36 views
0

urlManager爲了接受字符串ID,正確的規則是什麼?它顯示actionView上的錯誤404。網址:/sampleSite/index.php/transaction/I201303001Yii中的錯誤404關於urlManager不接受字符串作爲ID

這是我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>', 

     ), 
    ), 

提前感謝!

回答

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>', 

     ), 
+0

我已經嘗試過的那一個。它可以工作,但其他模塊返回「錯誤404:請求的頁面不存在」。任何其他想法? – cmyk1 2013-03-14 05:57:00

+0

@ Anon1編輯代碼來考慮模塊。檢查n回覆 – dInGd0nG 2013-03-14 06:09:22

1

嘗試使用正則表達式接受任何字符串(包括數字)

'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>', 

    ), 
+0

這適用於我,謝謝! – 2013-10-30 12:11:25