Я создаю простой сайт, на котором пользователи могут зарегистрироваться, а затем войти в систему и добавить текстовые статьи. Без входа пользователь будет иметь роль гостя и сможет просматривать только статьи. Я делаю это как упражнение в рамках Zend 1, поскольку я только начал изучать Zend. Я сделаю контроллер AuthController для входа в систему, но я хочу знать, как перенаправить действие входа в этот контроллер из моего indexAction в IndexController. Кроме того, как я могу использовать настраиваемый плагин для реализации такого контроля доступа? Как его вызвать?Как перенаправить на другое действие контроллера в Zend
ответ
Вы можете перенаправить внутри метода действия с использованием:
$this->redirect('/module/controller/action/');
Я думаю, что это воля помогает вам
$this->_helper->redirector('controller','action');
этим способом вы можете вызвать другой контроллер.
jalpesh и Hasina оба правильны своими короткими ответами.
Пример Jalpesh был бы сокращенным вызовом помощника действий redirector()
, который по умолчанию используется для перенаправления gotoSimple()
, за исключением того, что он, кажется, имеет параметры назад.
//corrected
$this->_helper->redirector($action, $controller);
будет более пространно называются:
$this->getHelper('Redirector')->gotoSimple($action, $controller = null, $module = null, array $params = array());
Есть несколько способов использования Redirector action helper, это просто очень распространенный пример.
Пример, представленный Хасиной, - это вызов контроллера utility method _redirect()
гораздо более ограниченного кода, а вспомогательный помощник Redirector
, но все же очень полезен.
//only accepts a url string as the first arg
//deprecated as of ZF 1.7 still in documentation
$this->_redirect($url, array $options = array());
по-видимому, от ZF 1.7 есть новый метод не в документации (нашел этот бит в DocBlock), который является предпочтительным:
//valid as of ZF 1.7, not in documentation
$this->redirect($url, array $options = array());
Оба этих метода коммунальных услуг прокси для :
Zend_Controller_Action_Helper_Redirector::gotoUrl()
Надеется, что это помогает
Спасибо RockyFord! используя $ this -> _ redirect ('/ auth/login') Я получаю эту ошибку: запрошенный URL/demo/auth/login не найден на этом сервере. Моя папка проекта - демонстрационная версия, внутри которой у меня есть приложение папок, библиотека и публикация. Index.php находится внутри public, и я указываю свой браузер на localhost/demo/public /. –
Если вы используете маршруты, вы можете использовать $this->getHelper('Redirector')->setGotoRoute(array(), 'routeName');
Я предполагаю, что это было переименовано в $ this-> redirect() в последних версиях ZF. – wmac