По сути, я хочу визуализировать вид и макет из модели. Не спрашивайте меня, почему.

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

Я хочу, чтобы макет работал автоматически, как в случае с контроллерами и представлениями.

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

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

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

0
John 29 Июл 2009 в 23:53

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/

2
smhg 10 Мар 2015 в 23:09
Есть английский перевод?
 – 
Sonny
16 Фев 2010 в 17:31

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

0
markh 29 Июл 2009 в 23:58
Я хорошо знаю, как работает MVC. Эта функция служит для создания потока phtml (удобочитаемого / легко редактируемого) для использования в качестве тела электронной почты, хранящегося в базе данных для отправки простым процессом, который контролирует поток электронной почты. Да, любой может использовать помощников, но 500 $ html. = 'Blablabla'; row - ужасный подход. Как я уже сказал, я уже могу успешно использовать виды для удовлетворения своих темных потребностей. Что я был бы признателен, так это то, что макет работает удовлетворительным образом. Считайте это скрытым MVC, параллельным стандартному.
 – 
John
30 Июл 2009 в 00:08
Я пытаюсь сказать, что хотя крестовая отвертка лучше, мне сейчас нужна прямая.
 – 
John
30 Июл 2009 в 00:12
Попался, и спасибо за то, что я был рад, когда я проверял очевидное. Удачи с этим, я определенно не гуру ZF, и этот вопрос напрашивается.
 – 
markh
30 Июл 2009 в 00:20