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

Kim*_*nce 3 email zend-view zend-framework2

在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);
Run Code Online (Sandbox Code Playgroud)

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

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

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

Moh*_*ibi 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);
Run Code Online (Sandbox Code Playgroud)