Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/09/2008, 15h09   #1
Membre actif
 
Avatar de __fabrice
 
Fabrice
Inscription : août 2004
Messages : 311
Détails du profil
Informations personnelles :
Nom : Fabrice
Âge : 40

Informations forums :
Inscription : août 2004
Messages : 311
Points : 180
Points : 180
Envoyer un message via ICQ à __fabrice Envoyer un message via MSN à __fabrice
Par défaut Redirection vers une route dans un controlleur

Salut à tous,

Apres avoir vu un tuto video sur le Zend_Router, je m'y suis mis. J'ai utilisé un bout du code de Zend_Auth (tuto sur developpez.com).

Par contre, je ne sais pas comment faire une redirection vers une route dans le controller. Dans le _redirect, j'aimerai utiliser une route prédéfinie :
Code :
1
2
3
4
5
6
7
8
 if ($result->isValid()) {
    // success : store database row to auth's storage system
    // (not the password though!)
    $data = $authAdapter->getResultRowObject(null, 'password');
    $auth->getStorage()->write($data);
    $this->_redirect('/menu/display');
 
} else {
Mes routes :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$frontController->setControllerDirectory(array(
'auth' 		=> _APP_PATH_	. '/application/modules/auth/controllers',
'actualites'   => _APP_PATH_	. '/application/modules/actualites/controllers',
'menu' 		=> _APP_PATH_	. '/application/modules/menu/controllers',
'users' 	=> _APP_PATH_	. '/application/modules/users/controllers'
	));
 
$frontController->setBaseUrl('/');
$frontController->setDefaultModule('auth');
$frontController->setDefaultControllerName('Auth');
$frontController->setDefaultAction('login');
 
// ROUTEUR /////////////////////////////////////////////////////////
$frontController->getRouter()->addConfig($configRouterXML,'routes');
un bout du XML :
Code :
1
2
3
4
5
6
7
8
<menuRoute>
 <type>Zend_Controller_Router_Route</type>
 <route>partieStaticDisplay</route>
<defaults>
 <controller>menu</controller>
 <action>display</action>
 </defaults>
 </menuRoute>
Donc comment je peux faire, apress l'authentification, pour aller sur la page du menu, en vérifiant que l'authentification a bien été faite ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class MenuController extends Zend_Controller_Action
{
    function init()
    {
        $this->initView();
        $this->view->baseUrl = $this->_request->getBaseUrl();
        $this->view->user = Zend_Auth::getInstance()->getIdentity();
    }
 
    function preDispatch()
    {
        $auth = Zend_Auth::getInstance();
        if (!$auth->hasIdentity()) {
            $this->_redirect('auth/login');
        }
    }
 
    function displayAction()
    {
        $this->view->title = "Bienvenue au menu";
        $this->render();
    }
}
là aussi, le redirect ne sera pas bon ecrit comme çà.

Merci de votre aide.

Fabrice
__fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2008, 08h07   #2
Membre actif
 
Avatar de __fabrice
 
Fabrice
Inscription : août 2004
Messages : 311
Détails du profil
Informations personnelles :
Nom : Fabrice
Âge : 40

Informations forums :
Inscription : août 2004
Messages : 311
Points : 180
Points : 180
Envoyer un message via ICQ à __fabrice Envoyer un message via MSN à __fabrice
Pas de réponse ?, personne ne sait ???

Bon puisque je suis "brave", mais vous ne le méritez pas , j'ai eu 2 réponses dans un autre forum :
Code :
$this->_redirect($this->view->url(array(1 => '0'), 'maPropreRouteRegex'));
ou çà :
Code :
$this->_helper->redirector('action', 'controleur', 'module', array('param1'=>'valeur1'));
Confirmez vous ?

Fabrice
__fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h50.


 
 
 
 
Partenaires

Hébergement Web