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>