Je veux générer un site dynamique à l'aide de zend_layout.
Ma mise en page (/application/layouts/scripts/layout.phtml) contient les lignes suivantes: p> Si je navigue sur mon index d'index d'index - Zend rend la vue d'index (application / vues / scripts / index / index.phtml) à l'intérieur de $ ceci-> Layout () -> Contenu automatiquement. P> maintenant Je veux rendre les points de vue sur différentes actions de contrôleur dans la mise en page.
Donc, je génère une nouvelle auth de contrôleur avec un identifiant d'action indiquant un formulaire de connexion. P> Je change ma mise en page à: p> Quand je navigue à l'index / index, je veux définir dans cette action que Zend devrait rendre l'auth / login afficher à l'intérieur de $ ceci-> mise en page () -> Connexion et, par exemple, nouvelles / liste à l'intérieur de $ ceci-> Layout () -> Contenu. p> index / index est qu'une sorte de mise en page de page -
et auth / login et nouvelles / liste une sorte de widget p> Comment faire cela? p> p>
4 Réponses :
Vous pouvez utiliser le spectacle non si performant ou vous l'essayer avec p> (voir
Je conseillerais contre $ ceci-> action () code> c'est très inefficace.
Le premier conseil est d'éviter l'assistant d'action à tout prix, il sera probablement supprimé dans ZF 2.0 de toute façon. ( ZF-5840 ) ( Pourquoi l'action d'action est le méchant ) p>
Ceci est lié à un question que j'ai demandée - et Bittharn's La réponse est assez utile. La meilleure façon de mettre en œuvre quelque chose comme celle-ci est d'avoir une aide d'une vue pouvant générer votre zone de connexion. my_view_helper_login code> par exemple. Ensuite, votre mise en page peut appeler
$ ceci-> login () code>, et peut donc le script d'affichage pour
utilisateur / login code>. Autant d'avoir
Index / Index Code> Rendez le contenu à partir de
News / List Code> Vient de transférer la demande à l'autre contrôleur / action du contrôleur.
$ ceci -> _ transmettre ('liste', 'actualités'); code> p>
Je conseillerais également de l'utilisation de l'assistant code> ACTION CODE>. Sauf si vous avez un tas de logique dans votre contrôleur, vous n'avez probablement pas besoin d'envoyer une autre demande à un autre contrôleur pour rendre une vue partielle.
Je recommanderais simplement d'utiliser une vue partielle comme vous l'avez fait avec votre < Code> header.phtml code> et et peut-être votre Tant que vous définissez vos variables de vue à un moment donné de votre contrôleur, vous pouvez appeler l'assistant footer.phtml code>: p>
auth / login.phtml code > Voir script ressemble à ceci: p>
Voir l'aide code > à partir d'une vue (ou même un contrôleur si vous le souhaitez). p>
Et si nous ne sommes pas dans l'index / l'index (contrôleur d'index, l'action d'index), Affichage-> L'utilisateur ne sera pas défini, comment rendre la logique derrière la vue -> Utilisateur séparé de l'action actuelle? On dirait que la réponse aussi loin que j'ai trouvée dans mes recherches est une aide de vue, bonne ..?
Je suis arrivé à cette page lorsque vous cherchez une réponse à mon propre problème, ce qui était que ma mise en page a été appelée plusieurs fois. Ceci est arrivé à cause de plusieurs raisons:
1) J'ai fait un mauvais appel Ajax, avait / aide au lieu de / Module / Aide p>
2) J'ai appelé une action, examens (), j'ai dû mettre A P>
$this->_helper->layout->disableLayout();
En fait, une autre question, que préférez-vous utiliser les aides d'affichage ou voir les scripts?