Как сделать параметр необязательным в маршрутизаторе Zend Framework
Я хотел бы знать .ini config file setup для создания маршрута, в котором параметр номер страницы является необязательным, так что
http://news.mysite.com/national
http://news.mysite.com/national/1
Укажите на ту же страницу.
У меня есть следующий код
resources.router.routes.news_list.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.news_list.route = "([a-zA-Z0-9-]+)/([0-9-]+)"
resources.router.routes.news_list.defaults.module = "news"
resources.router.routes.news_list.defaults.controller = "index"
resources.router.routes.news_list.defaults.action = "category"
resources.router.routes.news_list.defaults.page = 1
resources.router.routes.news_list.map.1 = "categ"
resources.router.routes.news_list.map.2 = "page"
resources.router.routes.news_list.reverse = "%s/%s"
Может ли some1 помочь мне с решением, чтобы изменить этот код, чтобы он работал для обоих url
2 ответа:
Вы можете сделать это без маршрута регулярных выражений, используя:
routes.news_list.route = ":action/:page" routes.news_list.defaults.module = "news" routes.news_list.defaults.controller = "index" routes.news_list.defaults.action = "category" routes.news_list.defaults.page = 1
Я предполагаю, что вы хотите, чтобы каждый запрос шел в модуль "новости" и контроллер "индекс". Только действие и страница являются переменными в url-адресе.
resources.router.routes.news_list.type = "Zend_Controller_Router_Route_Regex" resources.router.routes.news_list.route = "([a-zA-Z0-9-]+)/?([0-9]+)?" resources.router.routes.news_list.defaults.module = "news" resources.router.routes.news_list.defaults.controller = "index" resources.router.routes.news_list.defaults.action = "category" resources.router.routes.news_list.defaults.page = 1 resources.router.routes.news_list.map.1 = "categ" resources.router.routes.news_list.map.2 = "page" resources.router.routes.news_list.reverse = "%s/%d"
Что-то вроде этого тоже может сработать, если вам нужно использовать регулярное выражение.