Я пытаюсь создать систему входа в систему с Zend, что, когда пользователь пытается получить доступ к закрытой странице, он будет перенаправлен на страницу входа, если он не вошел в систему. У меня проблема с получением URL-адреса, которую он пытались получить доступ перед рукой. Есть ли функция Zend, которая будет возвращать все после базового URL? Например, мне нужно, чтобы «moduleName / controllerName / ActionName / param1 / value1 / param2 / value2» и т. Д. Отправлялось в качестве параметра строки запроса на страницу входа (например, login /? Redirect = controllerName / actionName / param1 / value1 /) param2 / значение)
Я могу получить имя контроллера и действия, а также получить параметры, но он уже включает в себя модуль, контроллер и действие. Я хотел бы просто получить то, что мне нужно. Я разработал долгий способ сделать это так:
$controllerName = Zend_Controller_Front::getInstance()->getRequest()->getControllerName();
$actionName = Zend_Controller_Front::getInstance()->getRequest()->getActionName();
$paramArray = Zend_Controller_Front::getInstance()->getRequest()->getParams();
$params = '';
foreach($paramArray as $key => $value)
$params .= $key . "/" . $value;
$this->_redirect('/admin/login/?redirect=' . $controllerName . "/" . $actionName . "/" . $params);
но даже тогда я получаю такие параметры, как module / admin / controller / index / etc, которые мне не нужны. Итак, как я могу получить все в виде строки, как в URL, или, по крайней мере, только параметры в строке без контроллера и действия в качестве значений параметров?
** РЕДАКТИРОВАТЬ: Вот мое текущее решение, но должен быть более элегантный способ сделать это **
$moduleName = $this->getRequest()->getModuleName();
$controllerName = $this->getRequest()->getControllerName();
$actionName = $this->getRequest()->getActionName();
$paramArray = $this->getRequest()->getParams();
$params = '';
foreach($paramArray as $key => $value)
if($key <> "module" && $key <> "controller" && $key <> "action")
$params .= $key . "/" . $value . "/";
$this->_redirect('/admin/login/?redirect=' . $moduleName . "/" . $controllerName . "/" . $actionName . "/" . $params);