2017-06-22 74 views
0

我有以下代碼 -有什麼辦法來觸發urlManager有條件Yii框架

'urlManager'=>array(
     'urlFormat'=>'path', 
        //'showScriptName'=>false, 
        //'caseSensitive'=>false, 
     'rules'=>array(
      ''=>'site/home', 
      'logout'=>'site/logout', 
      'login' =>'site/login', 
      'page/about' => 'page/show/id/1',    
      '<cat0:[a-zA-Z\-0-9]+>/<cat1:[a-zA-Z\-0-9]+>/<name:[a-zA-Z\-0-9]+>' => 'product/single', 
      '<cat0:[a-zA-Z\-0-9]+>/<cat1:[a-zA-Z\-0-9]+>' => 'product/products', 
      '<cat0:[a-zA-Z\-0-9 ]+>' => 'product/subcategories', 

     ), 
    ), 

但是當我使用任何網站路徑例 -

/site/contact/ 

的Yii認爲這是cat0和CAT1因此它將我帶向product/products控制器,並帶有$_GET['cat0'] = site$_GET['cat1'] = contact

有什麼出路嗎?

+0

@zakrzu建議使用動態規則的前綴或在動態規則之前添加所有靜態規則..因爲模式相同 –

+0

好的,我會的。謝謝 – akshay

回答

2

這是錯誤的。您的規則說:

any_word/any_word會去product/products

site/contact會去product/products

那麼試試這個:products/<cat0:[a-zA-Z\-0-9]+>/<cat1:[a-zA-Z\-0-9]+>' => 'product/products',

現在products/cat1/cat2會去/product/products

詳細閱讀部分:Adding Rules Dynamically

+0

謝謝。它幫助我很多 – akshay

相關問題