Мой комментарий превращался в ответ.Итак, поехали.
В следующий раз, пожалуйста, следуйте инструкциям Как спросить .
Пожалуйста, ознакомьтесь с документами ZF3 на маршрутизаторе и, возможно, RFC 3986 Глава 3 - Синтаксические компоненты , в которых показано, что такое путь и что такое запрос,
С RFC 3986 Глава 3 - Синтаксические компоненты
Ниже приведены два примера URI и их составные части:
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
| _____________________|__
/ \ / \
urn:example:animal:ferret:nose
Конфигурация маршрута ZF3 обычно является конфигурацией на пути. (Это также справедливо для почти всех распространенных сред.) Да, переменные могут быть частью пути.Таким образом, они настроены в конфигурации маршрута.Усовершенствованная конфигурация структуры маршрутизации часто также учитывает изменения / требования в схемах и полномочиях.
Не являются частью конфигураций маршрутизации части «запрос» и «фрагмент».
Если вы хотите что-то сделать, например, поймать пару ключ / значение «имя» и соответственно выполнить маршрутизацию, вам нужно будет создать «ловец» (или любое другое имя для этого).на пути и определить перенаправление самостоятельно.
Например, вы можете сделать что-то вроде этого ответа .Если ваш экземпляр контроллера расширяет класс Zend Framework по умолчанию AbstractActionController
, то у вас должен быть в наличии плагин forward
.Из документов:
Forward возвращает результаты диспетчеризации запрашиваемого контроллера;разработчик должен определить, что делать с этими результатами.Одной из рекомендаций является агрегирование их в любое возвращаемое значение из вызывающего контроллера.
Например:
$foo = $this->forward()->dispatch('foo', ['action' => 'process']);
return [
'somekey' => $somevalue,
'foo' => $foo,
];
Конечно, вы можете сразу же вернуть его.
Другой вариант - плагин redirect
(та же ссылка).
return $this->redirect()->toRoute('login-success');
Со всем этим вы можете сделать что-то вроде:
$name = $this->params()->fromQuery('name', null);
if ($name) {
// dispatch
if ($dispatchResult) {
// return special
}
}
// redirect
Где вы перенаправляете на имя маршрута (т.е. настроенный путь)