Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-11-2013 13:38:13

siriu
Membre
Date d'inscription: 17-05-2011
Messages: 55

Appeler une vue depuis une autre vue

Bonjour,

Dans CategoryController j'ai une action "listAction". Cette action interroge la base de donnée et assigne le resultat à une variable "catList" qui est passée à la vue.
La page :http://monsite/monmodule/category/list renvoie le résultat attendu en se servant de $this->catList

Maintenant j'ai besoin d'appeler cette vue depuis ma page d'accueil et ça ne fonctionne pas

La vue s'affiche mais j'ai une erreur me disant qu'il n'y a pas de variable $this->catList

Pouvez vous me guider un peu ?

Merci d'avance pour votre aide

Hors ligne

 

#2 25-11-2013 15:53:20

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Appeler une vue depuis une autre vue

Salut, c'est normal, il faudrait que tu nous donnes ton code qu'on puisse voir ce que tu fais. Mais tu dois lui passer les données, la vue ne fait qu'afficher ce qu'on lui a passer comme infos. Si elle n'a pas d'infos elle ne peut pas les afficher smile.

Hors ligne

 

#3 26-11-2013 22:34:01

siriu
Membre
Date d'inscription: 17-05-2011
Messages: 55

Re: Appeler une vue depuis une autre vue

Bonjour Orkin



CategoryController

Code:

    public function listAction()
    {
        return new ViewModel(array(
                'categories' => $this->getCategoriesTable()->getCategory()->toArray()
        ));
    }

Dans la vue j'affiche les categories... et ça fonctionne

Et je voudrai appeler cette vue depuis ma page d'accueil (applicationController listAction) ... je le fais en utilisant  $this->render mais dans cette vue il me dit ne pas connaitre $this->categorie

Je pensais que si on appele une vue avec $this->render, cette vue est intégrallemen éxecuté comme si on l'appelait directement mais visiblement ce n'est pas le cas ?

Merci pour vos conseils smile

Hors ligne

 

#4 27-11-2013 11:38:36

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Appeler une vue depuis une autre vue

Non ce n'est pas le cas effectivement. Render permet simplement de parser un template et d'exécuter son contenu php afin de retourner uniquement du html. Donc dans ton cas ça fonctionne très bien mais il plante car ne connait pas la variable $this->categorie.

Pour que ça fonctionne tu dois utiliser le plugin forward depuis le contrôleur de ta page d'accueil vers ton contrôleur list de façon à faire un "widget". Voici là doc officielle où tu pourras trouver des explications sur l'utilisation de ce plugin : http://framework.zend.com/manual/2.2/en … ugins.html

Hors ligne

 

#5 27-11-2013 17:08:07

siriu
Membre
Date d'inscription: 17-05-2011
Messages: 55

Re: Appeler une vue depuis une autre vue

Compris. Merci beaucoup à toi pour l'explication wink

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