cakePHP 1.3路线和命名参数

时间:2011-04-13 07:43:37

标签: php cakephp routes router named

我曾经在cakePHP 1.2上使用过这种路线

Router::connect('/mycategory/my-region', array('controller'=>'search', 'action'=>'properties''named'=>array('region'=>01)));

如何在蛋糕1.3中完成相同的工作

感谢

1 个答案:

答案 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>