IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Zend_Controller_Front : appel "manuel"


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Par défaut Zend_Controller_Front : appel "manuel"
    Bonjour,

    depuis mon layout principal, je voudrais faire appel a certaines action de certains controller pour en recuperer le contenu genere par la vue.

    Pour ce faire, je ne pouvait utiliser la methode redirect() ou forward() car je sortirai de mon layout courant (hors je veux recuperer le resultat de l'action ds une string pour la traiter).

    Ce que je pensais faire etait :
    - recuperer le font controller
    - activer le returnResponse
    - Appeler dispatch en lui passant une requete vers la bonne action de la bonne vue
    - desactiver le returnResponse
    - traiter mes donnees.

    Cependant, cela ne semble pas fonctionner. Il se trouve qu'une exception est levee par le plugin_controller ErrorHandler. Cette exception semble etre cree dans mon module Zend_Acl : il me dit ne pas trouver la resource 'index'. Il redirige donc vers le default controller avec la default action (Index/index)

    Je ne vois pas trop ce que j'ai mal fait. Vous trouverez ci-apres mon code :

    Appel manuel du front controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                            $front = Zend_Controller_Front::getInstance();
                            $front->returnResponse(true);
                            $front->setControllerDirectory(APPLICATION_PATH . '/controllers/');
                            $request = new Zend_Controller_Request_Http();
                            $request->setControllerName('MonController');
                            $request->setActionName('index');
                            $request->setPathInfo('MonController/index');
                            $response = $front->dispatch($request);
                            $front->returnResponse(false);
    L'exception est levee depuis la methode get() de la classe Zend_acl. Je ne vois pas ou intervient cette histoire de "resource".

    Quelqu'un peut-il m'eclairer ?

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    As tu définis dans ton Acl 'MonController' ?

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Hello, as-tu regardé du côté de Zend_View_Helper_Action ?

  4. #4
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    As tu définis dans ton Acl 'MonController' ?
    Oui ... c'est bien le probleme ....

  5. #5
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Par défaut
    Bon alors en fait, il se trouve que le 'resource' index correspond au controller appele. Pour un probleme tiers, le dispatcher relayait vers le controller par defaut qui etait 'index' (ce qui etait une erreur car cela doit etre 'Index').

    En configurant mieux mon front_controller (via l'appel de setDefaultController('Index')), cela se passe beaucoup mieux ...

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo