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 01/02/2007, 11h39   #1
Membre à l'essai
 
Inscription : août 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 47
Points : 21
Points : 21
Par défaut [Version 0.7] Redirection

Bonjour,
je viens de passer du Framework v0.6 au 0.7, et je test mon projet.
En version 0.6 j'utilisais :

Code :
$this->_redirect('/Client');
En 0.7 j'ai un message d'erreur :

Fatal error: Call to a member function setRedirect() on a non-object in C:\wamp\www\ZendFramework-0.7.0\library\Zend\Controller\Action.php on line 521

Je me suis dis que ,probablement, ce n'était pas le moyen conseillé pour faire une redirection vers une autre page ...

En cherchant, j'ai trouvé forward :
Code :
$this->_forward('Client','index',null);
et j'obtiens :

Fatal error: Call to a member function setParams() on a non-object in C:\wamp\www\ZendFramework-0.7.0\library\Zend\Controller\Action.php on line 453

Je me dis donc que c'est à cause du manque de paramètre, j'ai essayé de lui passer plusieurs array différent et appeller d'autres controllers et actions. Pas moyen.

Comment on fait alors ?

merci,

maKyo
maKyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2007, 20h38   #2
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 60
Points : 39
Points : 39
Reponse à maKyo->
tu fais un _forward('control','action); pas de nullc'est un paramètre optionnel ;
phpmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2007, 16h03   #3
Membre à l'essai
 
Inscription : août 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 47
Points : 21
Points : 21
Code :
$this->_forward('Client','index');
Fatal error: Call to a member function setParams() on a non-object in C:\...

maKyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 11h32   #4
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 60
Points : 39
Points : 39
C'est assez obscure et maigre comme indication pour pouvoir t'aider ...!!!

Essaye quand même de faire un parent::__construct() à la fin dans le constructeur de ta classe Controlleur, si tu as redefinis le constructeur bien sûr ...

Je pense que c'est un problème dû à une mauvaise instantiation de ton objet.
phpmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 14h02   #5
Membre à l'essai
 
Inscription : août 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 47
Points : 21
Points : 21
Est ce que ça pourrait venir que l'objet $response et $request ont besoin d'être instancié dans index.php ?

En version 0.6 j'avais un index.php comme ceci :
Code :
1
2
3
4
5
6
7
 
include 'Zend.php';
Zend::loadClass('Zend_Controller_Front');
Zend::loadClass('Zend_Controller_RewriteRouter');
$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory('controllers');
$controller->dispatch();
Et maintenant, est-ce suffisant ?
maKyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 22h23   #6
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 60
Points : 39
Points : 39
Il me semble que oui , mais là n'est pas le problème ...

ton erreur provient d'une action du controlleur que tu appelle, donc montre nous le code du controlleur ce sera plus simple que deviner ce que tu as fait
phpmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 09h24   #7
Membre à l'essai
 
Inscription : août 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 47
Points : 21
Points : 21
pfff c'est bon
J'ai modifié ma classe en enlevant le __construct()
merci pour votre aide
maKyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 21h07   #8
Invité régulier
 
Développeur informatique
Inscription : février 2007
Messages : 7
Détails du profil
Informations personnelles :
Âge : 32

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2007
Messages : 7
Points : 6
Points : 6
Citation:
Envoyé par maKyo
pfff c'est bon
J'ai modifié ma classe en enlevant le __construct()
merci pour votre aide
En fait tu dois appeler ton constructeur init() pour qu'il soit appeler automatiquement.
mikaelkael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2007, 08h49   #9
Membre à l'essai
 
Inscription : août 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 47
Points : 21
Points : 21
oki ! merci !
maKyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h43.


 
 
 
 
Partenaires

Hébergement Web