cakePHP 1.3路由和命名参数

问题描述

| 我曾经在cakePHP 1.2上使用过这种路由
Router::connect(\'/mycategory/my-region\',array(\'controller\'=>\'search\',\'action\'=>\'properties\'\'named\'=>array(\'region\'=>01)));
我如何在Cake 1.3中完成相同操作 谢谢     

解决方法

如果
my-region
始终等于
01
,那么您的解决方案与我猜的任何其他解决方案一样好。但是,如果您希望能够有几个不同的区域,那么我建议使用以下路线:
Router::connect(\'/mycategory/:my_region\',array(\'controller\' => \'search\',\'action\' => \'properties\'),array(\'pass\' => array(\'my_region\'),\'my_region\' => \'[\\#a-zA-Z0-9_-]+\')
);
这样,您就可以在控制器中获得ѭ1的值,如下所示:
function properties($my_region = NULL) {
    $regions = array(\'my-region\' => \'01\');
    $id = $regions[$my_region];
}
使用if / switch语句可以大大改善控制器部分。只是想举一个非常基本的例子。 编辑:然后,像这样建立链接:
<?php echo $this->ExHtml->link(
    \'My Region\',\'action\' => \'properties\',\'my_region\' => \'my-region\')
); ?>
应该自动输出:     
<a href=\"/mycategory/my-region\">My Region</a>