/ / Comment utiliser Zend Layout avec Zend View si j'appelle la vue d'un modèle? - zend-view

Comment utiliser Zend Layout avec Zend View si j'appelle la vue d'un modèle? - zend-view

En gros, je veux rendre une vue et une mise en page à partir d’un modèle. Ne me demande pas pourquoi.

Tout d'abord, les vues fonctionnent comme prévu et je "mles charger dans une variable pour mon usage pervers plus tard. Je suis également pleinement conscient que je pourrais toujours faire des scripts partiels. Cela semble être une solution de repli valable, mais cela ne suffit pas.

Ce que je veux faire, c'est que la mise en page fonctionne automatiquement, comme dans le cas des contrôleurs et des vues.

En ce moment j'emploie quelque chose comme ceci:

// Class blablabla
$layout = new Zend_Layout();
$layout->enableLayout();
$layout->setView($view);

// Ugly url, I know, I"m experimenting and they work
$body = $layout->render("mailer/layout/mail");
$body .= $view->render("mailer/templates/" . $type . ".phtml");

Le problème est que $ body contient la mise en page et seulement puis la vue réelle. Aucun conseil? Qu'est-ce que je fais mal?

Réponses:

2 pour la réponse № 1

En supposant que votre mise en page contient le défaut $this->layout()->content quelque part, vous voudriez ceci:

$layout->content = $view->render("...");
$body = $layout->render("...");

La source: http://www.wowww.ch/2009/03/16/zend-mail-avec-template-standardise-avec-zend-layout-et-zend-view/


0 pour la réponse № 2

Je pense que ma première note devrait être quevous "essayez d'utiliser un marteau comme un tournevis. Comme je suis sûr que vous le savez, dans le modèle MVC, la vue est le rendu et est logiquement distincte (séparée) du modèle. Je ne suis pas sûr que vous allez trouver une solution heureuse car vous traversez les cours d'eau.