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 02/02/2011, 23h09   #1
Invité régulier
 
Inscription : novembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 26
Points : 7
Points : 7
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 :
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 ?
Guildux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 09h43   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
As tu définis dans ton Acl 'MonController' ?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h39   #3
Membre confirmé
 
Patrick Barroca
Inscription : mai 2008
Messages : 178
Détails du profil
Informations personnelles :
Nom : Patrick Barroca

Informations forums :
Inscription : mai 2008
Messages : 178
Points : 204
Points : 204
Hello, as-tu regardé du côté de Zend_View_Helper_Action ?
patbator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 11h41   #4
Invité régulier
 
Inscription : novembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 26
Points : 7
Points : 7
Citation:
Envoyé par MaitrePylos Voir le message
As tu définis dans ton Acl 'MonController' ?
Oui ... c'est bien le probleme ....
Guildux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 11h53   #5
Invité régulier
 
Inscription : novembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 26
Points : 7
Points : 7
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 ...
Guildux 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 05h46.


 
 
 
 
Partenaires

Hébergement Web