Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-08-2011 18:10:25

leito33
Nouveau membre
Date d'inscription: 17-08-2011
Messages: 4

[Zend_View[1.11] Perte de variables lors d'un render

Bonjour, je suis débutant sur Zend.

j'ai créé un layout assez classique:

"echo $this->partial("header.phtml");
echo $this->layout()->nav;
echo $this->layout()->content;?>
<div id="sidebar"><?php echo $this->layout()->sidebar;?></div>"

Dans mon controleur, j'ai deux actions :

    public function indexAction(){
        $this->view->headTitle("Tourneur");
        $registry = Zend_Registry::getInstance();
        $db = $registry->get('db');
        $tn = new Tourneur($db);
        $select = $tn->select();
           $this->view->tourneurs=$tn->fetchAll($select);   
        $this->render();
        $this->render('artistes', 'sidebar');
    }

    public function artistesAction(){
        $idTourneur=$this->_getParam('id', 1);
        $tn = new Tourneur();
        $touneurRow = $tn->find($idTourneur)->current();
          $artistes=$touneurRow->getArtistes();
          $this->view->artistes=$artistes;
          $this->view->nomTourneur=$touneurRow->Nom;
          $this->render();
   }

Mon problème se situe dans le $this->render('artistes', 'sidebar');
Je n'ai aucune des variables de artistesAction renseignées.
Je veux donc afficher le résultat de mon artistesAction dans le layout sidebar.

D'avance merci si quelqu'un pouvait m'éclairer.

Hors ligne

 

#2 18-08-2011 21:50:59

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Zend_View[1.11] Perte de variables lors d'un render

La fonction render() rend la vue de l'action, mais n’exécute pas l'action... Sauf erreur de ma part du moins

Hors ligne

 

#3 19-08-2011 20:56:56

Alcide_
Membre
Lieu: Brest
Date d'inscription: 20-03-2010
Messages: 31
Site web

Re: [Zend_View[1.11] Perte de variables lors d'un render

C'est exact, la méthode "render()", comme son nom l'indique, va utiliser les variables créées lors de ou des actions exécutées pour réaliser le rendu d'un script. Si ton action n'a pas été exécutée avant, les variables ne seront donc pas accessibles.
Si tu veux, exécuter d'autres actions après l'action principale tu peux soit :
- utiliser la pile d'action (ActionStack) doc
- utiliser l'aide de vue action (plus gourmand en ressource) doc

Hors ligne

 

#4 19-08-2011 21:01:37

leito33
Nouveau membre
Date d'inscription: 17-08-2011
Messages: 4

Re: [Zend_View[1.11] Perte de variables lors d'un render

Merci. J'ai résolu mon problème avec l'ActionStack.

Hors ligne

 

#5 19-08-2011 21:09:22

Alcide_
Membre
Lieu: Brest
Date d'inscription: 20-03-2010
Messages: 31
Site web

Re: [Zend_View[1.11] Perte de variables lors d'un render

Autre chose, si tu veux éviter de récupérer à chaque fois ton adaptateur de bdd, tu peux mettre dans ton bootstrap ces lignes :

Code:

[lang=php]
$db = Zend_Db::factory(/***/);
Zend_Db_Table_Abstract::setDefaultAdapter($db);

Et aussi, la méthode "render()" est appelée automatiquement, tu n'as pas besoin de l'appeler dans ton contrôleur (sauf pour rendre un autre script que celui de l'action en cours).

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