Zendframework Routing Issue
Я настраивал свои маршруты в моем файле application.ini, который работает для всех тех, которые я установил. Проблема в том, что в этом контроллере есть несколько действий, и я пытаюсь использовать маршруты в других действиях.
Например, я создал следующее в моем application.ini для подкачки и сортировки столбцов
resources.router.routes.search.route = "search/:page/:col/:sort/:limit/"
resources.router.routes.search.defaults.controller = search
resources.router.routes.search.defaults.page = 1
resources.router.routes.search.defaults.col = time
resources.router.routes.search.defaults.sort = default
resources.router.routes.search.defaults.limit = 50
resources.router.routes.search.reqs.page = \d+
resources.router.routes.search.reqs.col = \w+
resources.router.routes.search.reqs.sort = \w+
resources.router.routes.search.reqs.limit = \d+
Вышеуказанное работает, когда я нахожусь на действии по умолчанию этой страницы, как
www.mywebsite.com/search/2/
Поднимет вторую страницу результатов. Но если я попробую то же самое на другом действии,
www.mywebsite.com/search/action/2
Это просто показывает пустую страницу. Я попытался создать свои собственные настройки в INI, и это не сработало. Я сталкивался с этой проблемой раньше, но обычно просто сдавался и разделял вещи на разные контроллеры, но я бы предпочел разные действия.
Любая помощь приветствуется.
Matt
2 ответа
search/:page/:col/:sort/:limit/
не совпадает www.mywebsite.com/search/action/2
, Ваш маршрут ищет search/
с последующей цифрой (\d
) который представляет номер страницы; тем не менее, вы запрашиваете search/
сопровождается строкой action
, Я бы предложил добавить еще один параметр в ваш маршрут: search/:action/:page/:col/:sort/:limit
по умолчанию action
в index
,
Запрос на первую страницу действия по умолчанию остается прежним (search
). Запрос страницы 2 маршрута по умолчанию теперь будет search/index/2/
, но теперь вы можете указать другое действие (search/action/2
).
Оказывается, я полностью забыл установить переменную для поискового запроса. На новой странице он не поддерживал исходный поисковый термин, и мой код делал то, что предполагалось, и не отображал какой-либо вывод.
Для тех, кто считает, что столкнулся с подобными проблемами, они могут найти эту ссылку очень полезной.