2014-02-13 58 views
3

好的,刪除了我以前的問題並重新編制了新的問題,否則沒有人會理解,對不起。因此,這裏剩下的問題:YII urlManager用多個參數重寫單個網址

所以我想重寫一個URL,一個字與零,一個和兩個參數的作品,但不是以3:

原始URL與2個PARAMATERS:

index.php?r=site/page&view=exposities&tijd=nu 

urlmanager規則:

'exposities_nu'=>array('site/page', 'defaultParams' => array('view' => 'exposities', 'tijd'=>'nu')), 

結果:

/exposities_nu/ 

現在什麼行不通:

原始URL與3個參數:

index.php?r=site/page&view=exposities&tijd=vestiging&locatie=1 

urlmanager規則:

'knsm'=>array('site/page', 'defaultParams' => array('view' => 'exposities', 'tijd'=>'nu', 'locatie'=>'1')), 

結果:

index.php?r=site/page&view=exposities&tijd=vestiging&locatie=1 

有沒有人爲什麼這最後的網址不縮短爲/ knsm /?

+0

可能是這將解決我們的問題... –

+0

我認爲這不會改變我必須制定規則的方式......無論如何,有趣的解決方案,但我現在沒有幫助我.. – Daniel

+0

導航到www.website.com/knsm/不起作用?使用您的確切代碼,我可以導航到www.website.com/knsm/,並使用'$ _GET ['view']','$ _GET ['tijd']'和$ $'echo'默認參數_GET ['locatie']' - 換句話說,你的代碼很好。 – deacs

回答

0

也許你沒有在URL管理器權限中設置網址。看到這個例子:

return array(
    ...... 
    'components'=>array(
     ...... 
     'urlManager'=>array(
      'urlFormat'=>'path', 
      'rules'=>array(
       'post/<id:\d+>/<title:.*?>'=>'post/view', 
       'posts/<tag:.*?>'=>'post/index', 
       '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
      ), 
     ), 
    ), 
); 

而且你必須創建你的網址正確:

Yii::app()->createUrl('post/view', array(
      'id'=>$this->id, 
      'title'=>$this->title, 
     ));