2009-07-29 2 views
0

В принципе, я хочу визуализировать представление и макет из модели. Не спрашивай меня, почему.Как я могу использовать Zend Layout с Zend View, если я вызываю представление из модели?

Прежде всего, представления работают по назначению, и я загружаю их в переменную для моего извращенного использования позже. Я также полностью осознаю, что всегда могу выполнять частичные сценарии. Кажется, это действительный запас, но он просто не сокращает его.

Что я хочу сделать, так это заставить макет работать автоматически, как в случае с контроллерами и представлениями.

Сейчас я использую что-то вроде этого:

// 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'); 

Проблема заключается в том, что $ тело содержит макет и только тогда фактический вид. Любой совет? Что я делаю не так?

ответ

2

Предполагая, что ваш макет содержит по умолчанию $this->layout()->content где-то, вы хотите:

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

Источник: http://www.wowww.ch/2009/03/16/zend-mail-avec-template-standardise-avec-zend-layout-et-zend-view/

+0

Есть ли перевод на английский? – Sonny

+0

Используйте google translate;) – umpirsky

0

Я думаю, что мое первое замечание должно быть в том, что вы пытаетесь использовать молоток в качестве отвертки. Как я уверен, вы знаете, в модели MVC представление является рендерингом и логически отличается (отдельно) от модели. Я не уверен, что вы найдете счастливое решение этого, так как вы пересекаете потоки.

+0

Я хорошо знаю, как MVC работает. Эта функция служит для создания потока phtml (доступного для чтения/легко редактируемого) для использования в качестве тела электронной почты, хранящегося в db, который должен быть отправлен простым процессом, который управляет потоком электронной почты. Да, любой может использовать помощников, но 500 $ html. = 'Blablabla'; строки - это ужасный подход. Я уже могу, как я сказал, успешно использовать взгляды для удовлетворения моих темных потребностей. Я бы оценил макет, работающий удовлетворительным образом. См. Это как скрытый MVC для параллельной стандартной. – John

+0

Я пытаюсь сказать, что, хотя крестовая отвертка превосходит, мне нужен прямой. – John

+0

Gotcha, и спасибо за сердечность, когда я проверял очевидное. Удачи вам в этом, я определенно не гуру ZF, и этот вопрос требует одного. – markh

Смежные вопросы