2011-01-24 4 views
0

J'ai rencontré un problème avec l'utilisation de l'objet de réponse pour aller à un contrôleur différent lors de l'échec de la validation.Zend demande l'objet de redirection

La configuration est un contrôleur (userPages) qui appelle l'assistant d'action (commun) qui tente ensuite de vérifier l'utilisateur, et en cas d'échec, l'utilisateur doit être envoyé à une autre URL dans le système. la partie pertinente du code est:

  /* 
      * 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); 

J'utilisé initialement dans cet extrait zend 1.6 et PHP 5.2.3 (et cela a fonctionné parfaitement), je mentionne cela parce que je pense que les choses auraient pu se un peu plus compliqué depuis alors, mais je ne peux pas sembler trouver n'importe quoi dans les docs qui indiqueraient un besoin d'un type différent de rediriger ou de raisons d'échec. Quelqu'un a des idées? btw: default/index/login est un chemin valide sur mon serveur, et je suis certain qu'il atteint les lignes ci-dessus et définit avec succès tous les paramètres avant de retourner et échouer en silence.

Répondre

0

si évidemment j'avais une faute de frappe quand j'ai essayé à l'origine le redirecteur de l'aide d'action, syntaxe correcte pour une aide d'action qui hérite de Zend_Controller_Action_Helper_Abstract est:

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

Si vous souhaitez rediriger d'une action à une autre, vous pouvez simplement utiliser:

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

Vous pouvez également essayer redirector action helper. J'espère que c'est ce que vous voulez accomplir.

+0

Je peux me tromper mais je ne pense pas que je avoir accès à des assistants d'action, chaque fois que j'ai essayé avant que j'ai reçu un message le long de la ligne de ne peux pas utiliser une aide d'action à l'intérieur d'une aide d'action. – xenador

+0

@xénador. Donc vous voulez rediriger de votre aide d'action personnalisée, pas de l'action dans un contrôleur? – Marcin

Questions connexes