2010-12-01 4 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/*. Этот маршрут будет соответствовать 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')); 
Смежные вопросы