CakePHP 1.3路由问题

时间:2010-12-01 23:44:02

标签: cakephp routes 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>

我该怎么办? 环境:关于apache2的CakePHP 1.3.6 php5.2.5

1 个答案:

答案 0 :(得分:2)

路线/ctl/act/subact/:mode/:sort表示必须有:mode:sort参数。此路线与网址/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'));