2010-12-01 26 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:apache2の上にCakePHP 1.3.6 php5.2.5

答えて

2

ルート/ctl/act/subact/:mode/:sort:mode:sortパラメータが存在しなければならないことを意味しています。このルートはURL /ctl/act/subact/と一致しません。オプションのパラメータがある場合は、アスタリスクを持つものを示す必要があります。/ctl/act/subact/*。このルートは、URL /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'));