ZF2:使用Zend \ View呈现电子邮件

时间:2013-12-07 11:20:29

标签: email zend-framework2 zend-view

在ZF1中,我使用视图组件来呈现电子邮件模板,如下所示:

$html = new Zend_View();
$html->setScriptPath($path);
$html->assign($vars);        
$body = $html->render($template);

// prepare the mail
$mail = new Zend_Mail('utf-8');
$mail->setBodyHtml($body);

我如何在ZF2中解决这个问题?我想我需要创建一个新的ViewModel,分配我的变量并设置模板,但是从哪里开始?

请注意,我在控制器中没有这样做。我已经看到了这个问题ZF2 view rendering,其中html在MVC响应中返回,但我希望渲染一个模板并将结果存储在一个变量中(然后我将其分配给电子邮件正文)。我会在服务层执行此操作。

与MVC流程相关的视图实例与我用于呈现电子邮件正文的实例无关。

1 个答案:

答案 0 :(得分:6)

您需要ServiceManager才能执行此操作。 在您的控制器中尝试此操作:

$view = new ViewModel(array(
        'foo'=>'bar',           
));
$view->setTemplate('path/to/phtml');
$view->setTerminal(true);
$serviceManager = $this->getServiceLocator();
$emailBody = $serviceManager->get('ViewRenderer')->render($view);