8
votes

Zend Framework: Rendez plusieurs vues dans une mise en page

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: xxx

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.

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.

Je change ma mise en page à: xxx

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.

index / index est qu'une sorte de mise en page de page - et auth / login et nouvelles / liste une sorte de widget

Comment faire cela?


1 commentaires

En fait, une autre question, que préférez-vous utiliser les aides d'affichage ou voir les scripts?


4 Réponses :


1
votes

Vous pouvez utiliser le spectacle non si performant xxx

ou vous l'essayer avec xxx

(voir http://framework.zend.com/manual/ EN / ZEND.VIEW.HELPERS.HTML # ZEND.VIEW.HELPERS.ITIAL.PARTIAL )


1 commentaires

Je conseillerais contre $ ceci-> action () c'est très inefficace.



8
votes

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 )

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 par exemple. Ensuite, votre mise en page peut appeler $ ceci-> login () , et peut donc le script d'affichage pour utilisateur / login . Autant d'avoir Index / Index Rendez le contenu à partir de News / List Vient de transférer la demande à l'autre contrôleur / action du contrôleur. $ ceci -> _ transmettre ('liste', 'actualités');


0 commentaires

3
votes

Je conseillerais également de l'utilisation de l'assistant ACTION . 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 et footer.phtml : xxx

et peut-être votre auth / login.phtml Voir script ressemble à ceci: xxx

Tant que vous définissez vos variables de vue à un moment donné de votre contrôleur, vous pouvez appeler l'assistant Voir l'aide à partir d'une vue (ou même un contrôleur si vous le souhaitez). xxx


1 commentaires

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 ..?



0
votes

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();


0 commentaires