cakePHP 1.3路由和命名参数


cakePHP 1.3 routes and named params

我在cakePHP 1.2中使用过这种路由

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

如何在蛋糕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_-]+')
);

你可以在你的控制器中得到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>