如何在ZF2中呈现布局的邮件模板? [英] How to render a mail template with layout in ZF2?
本文介绍了如何在ZF2中呈现布局的邮件模板?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在ZF1中,我使用以下代码来呈现邮件正文:
In the ZF1 I used the following code to render a mail body:
// View erstellen
$view = new Zend_View();
// Layout erstellen
$layout = new Zend_Layout();
// HelperPath muss hier nochmals übergeben werden da es ein neues View Objekt ist.
$view->addHelperPath('Own/View/Helper', "Own_View_Helper_");
// ViewScript
$view->setScriptPath(APPLICATION_PATH . '/views/scripts/emails/');
// LayoutPath
$layout->setLayoutPath(APPLICATION_PATH . '/layouts/scripts/');
$layout->setLayout('layoutMail');
$layout->setView($view);
foreach ($assigns as $key => $value) {
$view->assign($key,$value);
}
$layout->content = $view->render($templateName);
return $layout->render();
我尝试了很多,但我无法在ZF2中实现这个功能。我的实际代码就是这样。但是它使用标准布局,我无法在字符串中找到它。
I tried a lot but I cannot realise this function in ZF2. My actual code is this. But it uses the standard layout and I cannot get it in a string.
public function mailAction()
{
$viewModel = new ViewModel();
$viewModel->setTemplate("zhorty/test");
$viewModel->setVariable('test', 'some value');
return $viewModel;
}
推荐答案
谢谢!你的答案帮助我!
Thank you! Your answer helped me!
我扩展了代码。所以我也可以使用布局模板。
I extended the code. So I can use a layout template as well.
$view = new \Zend\View\Renderer\PhpRenderer();
$resolver = new \Zend\View\Resolver\TemplateMapResolver();
$resolver->setMap(array(
'mailLayout' => __DIR__ . '/../../../../Application/view/layout/layout-mail.phtml',
'mailTemplate' => __DIR__ . '/../../../view/zhorty/test.phtml'
));
$view->setResolver($resolver);
$viewModel = new \Zend\View\Model\ViewModel();
$viewModel->setTemplate('mailTemplate')
->setVariables(array(
'test' => 'AlloVince'
));
$content = $view->render($viewModel);
$viewLayout = new \Zend\View\Model\ViewModel();
$viewLayout->setTemplate('mailLayout')
->setVariables(array(
'content' => $content
));
echo $view->render($viewLayout);
这篇关于如何在ZF2中呈现布局的邮件模板?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文