То, что я нашел в качестве простого метода для достижения этой цели, это просто иметь скрытое поле в форме входа в систему.
Теперь я не уверен, является ли ваша форма входа универсальным HTML-элементом или фактически является экземпляром Zend_Form
, но если это экземпляр Zend_Form
, вы можете просто добавить следующее:
$this->addElement('hidden', 'return', array(
'value' => Zend_Controller_Front::getInstance()->getRequest()->getRequestUri(),
));
Затем в моем скрипте аутентификации, как и в приведенном выше комментарии, у меня есть простое перенаправление, которое использует переданное значение, чтобы вернуть их на ту же страницу.
$this->_redirect($this->_request->getPost('return'));
Очевидно, что в этих двух примерах они просто написаны для сжатия кода и, вероятно, не представляют лучший способ его выполнить. Два метода, использующие getRequest()
в моем коде, на самом деле не встроены в redirect
или addElement
, но для примера я просто вставил их туда.
Ответ выше, очевидно, также будет работать, если только у вас не будет массового перенаправления страниц. Основная причина, по которой я сейчас запускаю свой метод, заключается в том, что не все мои формы работают в Zend_Form
, и также приятно иметь возможность изменять значение скрытого текстового поля return
для тестирования.