Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour.
Je suis débutant avec zend et depuis quelques jours je bloque sur le point suivant :
J'ai un controlleur ArtisteControleur avec une methode indexAction et une vue index.phtml.
Cette vue affiche les infos de l'artiste d'une certaine facon.
Ensuite j'ai un controlleur HomeControlleur avec une méthode indexAction et une vue index.phtml.
Dans cette vue, je souhaiterai afficher l'ensemble des artistes mais en utilisant la vue de l'artiste (pour ne pas refaire cette partie de code là).
J'ai donc procédé de la facon suivante :
- creation d'une méthode static getAllArtiste dans le controlleur artiste qui renverrai un tableau de ArtisteControlleur
- Dans le IndexAction du HomeControlleur, appeler getAllArtiste
- Puis dans la vue de la home faire : $this->action('index','artiste''); pour chaque artiste récupérer.
Mais cela ne fonctionne pas (erreur au niveau du getAllArtiste au moment de la creation des controlleurs).
Je pense qu'il y a surement une meilleur façon de faire !
merci pour votre aide!
Dernière modification par seb888 (18-11-2011 14:28:12)
Hors ligne
Salut,
1 - Controller, pas ControlleUr
2 - Un controleur d'action ne devrait contenir que des méthodes d'action, tu devrais utiliser des aides d'action
3 - Pourquoi ne pas créer une action dans ton controleur Artiste qui permet l'affichage de la liste des artistes (via la vue associé), puis dans la vue de ton controleur Home tu utilise l'aide de vue action() pour appeler cette action.
Hors ligne
Merci pour ta réponse
Je ne voulais pas créer une vue qui affiche directement la liste car par moment j'aurais besoin d'afficher un seul artiste. Cependant je viens de reussir à trouver la solution : faire une boucle dans la vue de la home et faire un appel à l'aide de vue action en lui passant l'id de l'artiste.
Hors ligne
En faisant ainsi, tu vas interroger X fois (où X est le nombre d'artistes que tu veux afficher) ta BDD, au lieu de ne faire qu'une seule requête qui les récupère en une seule fois, et qui boucle ensuite sur ce résultat.
Hors ligne
Effectivement oui je me suis aperçu de ce problème, j'ai donc passé par paramètre directement les données à afficher.
Après je suis d'acord que dans la majorité des cas le mieux reste une vue qui affiche directement tous les artistes d'un coup.
Hors ligne