CakePHP 1.3 маршруты и именованные параметры - PullRequest
0 голосов
/ 13 апреля 2011

У меня были такие маршруты, которые раньше работали на cakePHP 1.2

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

Как я могу сделать то же самое в торт 1.3

спасибо

1 Ответ

2 голосов
/ 13 апреля 2011

Если 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>

...