Zend_Controller_Router_Rewrite и rout.ini для многостраничного раздела - PullRequest
2 голосов
/ 28 февраля 2011

У меня есть приложения ZF, использующие пользовательские маршруты к списку страниц (скажем, к списку местоположений), и у меня возникают проблемы либо с пониманием того, как работает значение их требований маршрутизации, либо с помощью регулярного выражения, чтобы заставить его работать. Я бы хотел, чтобы http://domain.com/locations перешел к http://domain.com/location/list/page/1, а затем получил следующее (http://domain.com/locations/2 -> http://domain.com/location/list/page/2, и т. Д.).

Проблема заключается в идентификации пустого регистра (т.е. http://domain.com/locations).

В моем rout.ini у меня есть (который не работает, но / ^ [\ d] * $ / работает в простом preg_match):

routes.locations-page.route = locations/:page
routes.locations-page.defaults.controller = locations 
routes.locations-page.defaults.action = list-new
;routes.locations-page.reqs.page = \d* - does not work
routes.locations-page.reqs.page = ^[\d]*$

Какой reqex будет использовать сценарии http://domain.com/locations, http://domain.com/locations/1, и http://domain.com/locations/2 на одном маршруте?

ТНХ

1 Ответ

0 голосов
/ 28 февраля 2011

Невозможно сопоставить URL http://domain.com/locations и http://domain.com/locations/2 в одном и том же правиле, поскольку структура URL отличается. Но вы можете попробовать следующее, чтобы достичь того, что вы хотите сделать.

В вашем файле начальной загрузки

    $r = new Zend_Controller_Router_Route_Regex('locations/(*)',
                    array('controller' => 'locations', 'action' => 'list-new'), 
array(1 => 'locationID'));
    $router->addRoute('add-location', $r);

Вы также можете использовать предпочитаемый способ добавления маршрутов.

В вашем контроллере местоположений,

$locationID = $this->_getParam('locationID');

Теперь, основываясь на этом значении, перейдем к соответствующим действиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...