2011-01-24 4 views
0

У меня возникла проблема с использованием объекта ответа, чтобы перейти к другому контроллеру после отказа проверки.Переадресация объекта запроса Zend

Установка - это один контроллер (UserPages), который вызывает помощник действия (общий), который затем пытается проверить пользователя, а если он терпит неудачу, пользователь должен быть отправлен на другой URL-адрес в системе. соответствующая часть кода:

  /* 
      * user was never logged in force them to login now 
      * we dont have access to any other helper methods so set it the long hard way...make 
      * sure to specify setDispatched to false to reque the dispatch event 
      */ 
      return $this->getRequest()->setModuleName('default') 
             ->setControllerName('index') 
             ->setActionName('login') 
             ->setDispatched(false); 

Первоначально я использовал этот фрагмент в ZEND 1.6 и PHP 5.2.3 (и она работала отлично), я говорю об этом, потому что я подозреваю, что все могло быть немного более сложным, так как получил то, но я не могу найти что-либо в документах, которые указывают на необходимость другого типа перенаправления или причин неудачи. У кого-нибудь есть идеи? btw: default/index/login - это допустимый путь на моем сервере, и я уверен, что он достигает строк выше и успешно устанавливает все параметры перед возвратом и неудачей молча.

ответ

0

так, видимо, у меня была опечатка, когда я первоначально пытался редиректор от помощника действия, правильный синтаксис помощника действий, который наследуется от Zend_Controller_Action_Helper_Abstract является:

//in case we need to redirect preload the redirector 
$redirector = $this->_actionController->getHelper('Redirector'); 
$redirector->gotoUrl('<your url here>'); 
0

Если вы хотите перенаправить от одного действия к другому, вы можете просто использовать:

$this->_redirect('/index/login'); 

Вы также можете попробовать redirector action helper. Надеюсь, это то, чего вы хотите достичь.

+0

Я мог бы быть неправильно, но я не думаю, имеют доступ к помощникам действий, каждый раз, когда я пробовал, прежде чем мне было дано сообщение, которое не могло бы использоваться помощником действия из помощника действий. – xenador

+0

@xenador. Итак, вы хотите перенаправить из своего настраиваемого помощника действий, а не из действия в контроллере? – Marcin

Смежные вопросы