2010-12-01 2 views
0

Il ne peut pas corriger la route de ce qui suit:CakePHP 1.3 problème de routage

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> 

Comment puis-je faire? Env: CakePHP 1.3.6 php5.2.5 sur apache2

Répondre

2

La Route /ctl/act/subact/:mode/:sort signifie qu'il doit y avoir un paramètre :mode et :sort. Cet itinéraire ne correspond pas à l'URL /ctl/act/subact/. S'il existe des paramètres facultatifs, vous devez indiquer ceux avec un astérisque: /ctl/act/subact/*. Cet itinéraire correspond aux URL /ctl/act/subact/, /ctl/act/subact/foo et /ctl/act/subact/foo/bar.

Si vous avez besoin de ces paramètres optionnels que les paramètres nommés, vous devrez créer plusieurs itinéraires pour chaque possible « longueur »:

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'));