我曾经在cakePHP 1.2上使用过这种路线
Router::connect('/mycategory/my-region', array('controller'=>'search', 'action'=>'properties''named'=>array('region'=>01)));
如何在蛋糕1.3中完成相同的工作
感谢
答案 0 :(得分:2)
如果my-region
总是等于01
,那么您的解决方案就像其他任何我想的一样好。但是,如果您希望能够拥有多个不同的区域,那么我建议您使用以下路线:
Router::connect('/mycategory/:my_region',
array('controller' => 'search', 'action' => 'properties'),
array('pass' => array('my_region'), 'my_region' => '[\#a-zA-Z0-9_-]+')
);
所以你可以在控制器中获得my-region
的值,如下所示:
function properties($my_region = NULL) {
$regions = array('my-region' => '01');
$id = $regions[$my_region];
}
使用if / switch语句可以大大改善控制器部分。只是想给出一个非常基本的例子。
修改:然后,像这样构建链接:
<?php echo $this->ExHtml->link(
'My Region',
array('controller' => 'search', 'action' => 'properties', 'my_region' => 'my-region')
); ?>
应该自动输出:
<a href="/mycategory/my-region">My Region</a>