2010-10-26 4 views
4

J'essaie de déterminer comment je peux arrêter zend ou rediriger zend pour aller à un autre contrôleur zend et action si une vérification dans la sangle de démarrage échoue.Zend Framework MVC rediriger vers un contrôleur différent et une action

par exemple une variable get n'existe existe pas ou plus probablement une session ne signifie que l'utilisateur doit se connecter.

afin que l'utilisateur avait l'index demandé à l'origine/uneAction

mais je veux qu'ils aillent se connecter/indexer

dans ma sangle de démarrage je placerais la condition, puis changer l'action du contrôleur pour voir.

Si je fais ceci d'une manière qui n'est pas standard quelqu'un peut-il me diriger vers la documentation sur la meilleure pratique?

zend novice

Répondre

3

De Zend documentation (Dispatcher)

// forward to an action in another controller: 
// FooController::bazAction(), 
// in the current module: 
$this->_forward('baz', 'foo', null, array('baz' => 'bogus')); 
+0

c'est ce que je cherchais vraiment merci mon pote. –

2

Je ne mets généralement pas l'authentification dans le bootstrap, qui devrait avoir son propre contrôleur.

Créez un AuthController() pour configurer votre adaptateur auth et configurer votre instance.

Puis, dans une vision commune (pour les pages sécurisées), il suffit de vérifier votre exemple avec quelque chose comme:

$auth = Zend_Auth::getInstance();  
if(!$auth->hasIdentity())  
{ 
#re-direct to login page 
} 
+0

c'était vraiment utile merci. –

4

Je vous sugest faire avec des plugins d'accès vérifier sur chaque page et pour la connexion créer un contrôleur d'authentification.

Vous trouverez ici comment faire ce http://alex-tech-adventures.com/development/zend-framework/61-zendauth-and-zendform.html

Un exemple:

class Plugin_AccessCheck extends Zend_Controller_Plugin_Abstract 
{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    { 
     // ... 

     if(!$auth->hasIdentity()) 
     { 
      $request->setControllerName('authentication') 
       ->setActionName('login'); 
     } 
    } 
} 
+0

conviennent que cette conception est un bon – jah

+0

bonne approche. agréable – Stann

Questions connexes