2010-12-01 112 views
0

它可以從下面的不正確路線:的CakePHP 1.3路由問題

Router::connect('/ctl/act/subact/:mode/:sort'  
, array('controller' => 'ctl', 'action' => 'act_subact', 
'mode' => null , 'sort' => null)); 

-

$html->link('go',array('controller'=>'ctl','action'=>'act_subact')) 

-

<a href="/ctl/act_subact/">go</a> 

我該怎麼辦? Env:CakePHP 1.3.6 php5.2.5上apache2

回答

2

路由/ctl/act/subact/:mode/:sort意味着必須有一個:mode:sort參數。此路線不符合URL /ctl/act/subact/。如果有可選參數,則需要用星號表示:/ctl/act/subact/*。此路線將匹配網址/ctl/act/subact//ctl/act/subact/foo/ctl/act/subact/foo/bar

如果你需要這些可選參數命名參數,你需要爲每個可能的「長度」幾個途徑:

Router::connect('/ctl/act/subact/:mode/:sort', array('controller' => 'ctl', 'action' => 'act_subact', 'mode' => null, 'sort' => null)); 
Router::connect('/ctl/act/subact/:mode', array('controller' => 'ctl', 'action' => 'act_subact', 'mode' => null)); 
Router::connect('/ctl/act/subact/', array('controller' => 'ctl', 'action' => 'act_subact'));