Je dois rediriger en fonction de certaines conditions dans le fichier d'amorçage.
Ceci est fait APRES le contrôleur frontal et les routes sont définies.
Comment est-ce que je fais cela?
(je sais que je peux simplement utiliser header ('Location: ....) Le point est que je dois utiliser le routeur pour construire l'URLExiste-t-il un moyen de rediriger le navigateur à partir du bootstrap dans Zend Framework?
Répondre
plus d'un an plus tard, je programme en ZF et j'ai cette solution pour votre problème. Voici ma fonction dans bootstrap qui détermine où l'utilisateur est connecté.
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected $_front;
(...)
protected function _initViewController()
{
(...)
$this->bootstrap('FrontController');
$this->_front = $this->getResource('FrontController');
(...)
}
protected function _initLogado()
{
$router = $this->_front->getRouter();
$req = new Zend_Controller_Request_Http();
$router->route($req);
$module = $req->getModuleName();
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$this->_view->logado = (array) $auth->getIdentity();
} else {
$this->_view->logado = NULL;
if ($module == 'admin') {
$response = new Zend_Controller_Response_Http();
$response->setRedirect('/');
$this->_front->setResponse($response);
}
}
}
}
La meilleure façon est probablement un Controller Plugin
Vous pouvez. ajoutez un hook routeShutdown() qui est appelé après le routage, mais avant la méthode d'action votre contrôleur est appelé Dans ce plugin vous pouvez ensuite vérifier les données de la requête ou chercher des permissions dans une ACL, ou simplement rediriger au hasard si c'est ce que vous voulez!
Le choix vous appartient!
EDIT: En relisant votre question, il semblerait que vous ne soyez même pas intéressé par l'itinéraire - utilisez routeStartup() comme premier point après l'amorçage pour injecter votre code.
Je saisirait le routeur du contrôleur avant et appeler sa méthode assemble()
puis utilisez header()
:)
Cordialement,
Rob ...
Vous pouvez vérifier l'état sur « routeShutdown "méthode dans le plugin, puis utilisez $ this-> actionController -> _ helper-> redirector() pour rediriger;)
Redirection ne devrait vraiment pas être dans le fichier de démarrage ... Ce sera une nuit horrible de débogage pour le codeur qui finit coincé avec votre code dans quelques années. Utilisez un plugin de contrôleur frontal, un plugin Action Controller ou faites-le dans votre contrôleur d'action. En fin de compte une telle redirection devrait être évitée tout à fait ...
Pourquoi le vote à la baisse? – balupton
Pourquoi ne devrait-il pas être dans le fichier d'amorçage? S'il vous plaît élaborer. –
- 1. Modules Bootstrap utilisant Zend Framework 1.8
- 2. Comment faire pour récupérer l'objet de demande dans le fichier Bootstrap? Zend Framework/PHP
- 3. Zend Studio + Zend Framework
- 4. Rediriger le navigateur à l'aide de AJAX
- 5. installation du framework Zend
- 6. rediriger le navigateur dans SimpleHTTPServer.py?
- 7. Existe-t-il un moyen de lire le cookie du navigateur à partir d'une applet Java?
- 8. zend trace de la pile du framework
- 9. Intégration de PDF à partir du serveur dans le navigateur
- 10. Calendrier dans Zend Framework
- 11. zend framework perdre session
- 12. array à Zend_Db_Table_Row zend framework
- 13. Obtention de basepath à partir de la vue dans le framework zend
- 14. Comment réécrire un domaine dans Zend Framework
- 15. Ajout d'une route vers un routeur dans Zend Framework
- 16. Zend Framework: Implémenter Zend_Acl_Resources
- 17. Zend Framework: Premiers pas avec Zend_Test
- 18. Zend Framework - Module dans un modules?
- 19. Zend Framework Grid
- 20. Servir des fichiers dans Zend Framework MVC
- 21. Problème Ajax dans Zend Framework
- 22. Mises à jour de Zend Framework?
- 23. Installation du framework Zend avec le serveur WAMP
- 24. Zend Studio 7.0 + Zend Framework
- 25. Existe-t-il un moyen de "remplacer à chaud" le code JavaScript dans le navigateur?
- 26. servant des images à partir d'un pool de fichiers en utilisant le framework zend
- 27. problème de diacritique dans le projet réalisé avec Zend Framework
- 28. Utiliser Zend Framework sans l'installer dans la racine du serveur?
- 29. Authentification de l'utilisateur Zend Framework
- 30. Zend Framework: Comment tester un modèle à l'aide de Zend_Service_Twitter
J'ai effectivement essayé cela avant de poster. N'a pas fonctionné pour une raison quelconque (là où aucune valeur). Dois-je initialiser quelque chose dans le routeur avant d'utiliser la méthode d'assemblage? (merci) –
Vous avez un simple exemple de code? –