Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-02-2008 15:56:40

slyfog
Nouveau membre
Date d'inscription: 22-02-2008
Messages: 2

forward et nom de l'action

Bonjour à tous,

je viens de passer du temps sur un problème assez assez étrange :

Soit le code :

Code:

class IndexController extends My_Control_Action
{
    public function indexAction()
    {
        if( CONDITION )
        {
            $this->_helper->viewRenderer->setNoRender();
            $this->_forward('autreIndex');
        }
    }

    public function autreIndexAction()
    {
        echo 'forward vers l'action : ';
        echo $this->_request->action;
    }
    
}

Avec ça on s'attend a récuperer le nom de l'action autreIndex, et pourtant c'est index qui sort. Je n'ai pas réussi à trouver d'ou venait la valeur 'index' ! ( même dans le debugger la valeur de _request->_action était la bonne )

En revanche, si on utilise $this->_request->getActionName(); là le nom correct de l'action sort.

Donc tout fonctionne mais si quelqu'un a une idée sur d'où vient la variable action et de la différence avec getActionName, ça m'interresse :]

Je n'ai pas réussi à trouver de la doc la dessus.

En attendant ça peut aider quelqu'un qui auait eu le même problème que moi.

Dernière modification par slyfog (22-02-2008 15:58:16)

Hors ligne

 

#2 22-02-2008 17:07:45

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: forward et nom de l'action

normal le forward est juste un enchainement d'appel de fonction c'est donc bien l'action Index qui à été invoqué

si tu veux faire une transition il te faut utiliser _redirect

Code:

class IndexController extends My_Control_Action
{
    public function indexAction()
    {
        if( CONDITION )
        {
            $this->_helper->viewRenderer->setNoRender();
            $this->_redirect('autreIndex');
        }
    }

    public function autreIndexAction()
    {
        echo 'forward vers l'action : ';
        echo $this->_request->action;
    }
    
}

Hors ligne

 

#3 22-02-2008 18:19:18

slyfog
Nouveau membre
Date d'inscription: 22-02-2008
Messages: 2

Re: forward et nom de l'action

En effet le redirect fonctionne bien aussi pour faire ça, mais appelle la nouvelle url, dans mon cas j'avais besoin de rester sur la même url.

Hors ligne

 

#4 22-02-2008 20:06:32

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: forward et nom de l'action

oui c'est soit l'un soit l'autre
soit tu reste sur la même action est $this->_resquest->action te donne toujours celle-ci
soit tu re-dirige et tu change d'action et $this->_request->action suis aussi.

si tu veux connaître le nom de ma méthode dans laquelle tu exécute un bout de code il te faut en passer par l'introspection ou par la pile d'exécution.

A+JYT

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages