Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
bonjour dans une action on peut appeler une autre action au sein d'un controller mais comment peut t'on passer une paramétre quand l'une des action doit en recevoir un .
Ex: mon action recrois "id_client" en paramétrè mais quand j'appelle A dans l'action B comment je peux passer a A "id_client" que j'ai dans B ?
Merci de votre aide
Cordialement
Dernière modification par lebilien (05-03-2008 17:46:05)
Hors ligne
Qu'est ce que tu entends quand tu dis que ton action reçoit un paramètre id_client ? La vue lui transmet par un Post par exemple ? Je ne suis pas un spécialiste mais en php si tu veux balader des variables, on utilise les sessions pour ça. Peut-être c'est ce qu'il te faut non ?
PS: débuttant sous ZF, pourrais tu me dire dans quel cadre tu passes des paramètres entre Action ?
Hors ligne
dans l'action A je recois :
$id_client=$this->_getParam("id_client") ;
dans l'action B j'ai
$this->actionA();
du coup l'action A na plus de id_client .
Hors ligne
si tu veux lancer une action dans une autre action, ne devrais-tu pas passer par la pile d'action (actionStack) ?
http://framework.zend.com/manual/en/zen … ockhelpers
http://julien-pauli.developpez.com/tuto … t/#LII-B-1
function bAction() { $id_client=$this->_getParam("id_client") ; $this->_helper->actionStack('a','monController','null', array('id_client' => $id_client) ); } function aAction() { $id_client=$this->_getParam("id_client") ; }
Hors ligne
Oula faut pas faire aussi compliqué.
Si tu a simplement besoin de faire appel à l'action A à la suite de la B, utilise la méthode _forward()
Manuel a écrit:
_forward($action, $controller = null, $module = null, array $params = null) : exécute une autre action. Si appelé dans preDispatch(), la requête courant est évité en faveur de la nouvelle. Sinon, après que l'action courante ait été exécuté, l'action demandé dans _forward() sera exécuté.
En utilisant ça, ton paramètre sera conservé
Hors ligne
Bonjour lebilien,
Tu peux effectivement utiliser des params de $this->_forward(),
tu peux aussi fixer un paramètres avec :
$this->_setParam("myValue","toto"); $this->_forward("toto");
et dans le totoAction, tu récupère myValue par un $this->_getParam
Tu peux aussi utiliser la registry si tu veux.
A+, Philippe
Hors ligne
sa marche merci de votre aide
Cordialement
Hors ligne
tu peux aussi en fixant les paramètre utiliser le redirect ainsi ton client se trouve lui aussi sur l'action A
Hors ligne