CakePHP 1.3 маршруты и названные параметры

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

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

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

Спасибо

1 ответ

Решение

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

Другие вопросы по тегам