将视图文件加载到Zend Framework中的变量中

Eri*_*rik 1 email templates zend-framework

我正在尝试使用邮件模板发送邮件.为此,我想将.tpl加载到变量中.我不知道是否可以在控制器中设置视图的值,然后将此视图加载到变量中,而不是加载HTML文件并替换占位符.这样我就会有一个变量,其中包含在加载视图之前用控制器中设置的信息填充的HTML邮件.

我的意思是,如果已经有了以更标准化的方式进行邮件模板化的方法,那么任何替代方案也是受欢迎的.

Dav*_*unt 8

一个好主意Erik,我已经做过很多次了.

Zend_View实际上只是一个模板系统,可以用来生成任何东西,而不仅仅是HTML.

示例代码 - 创建视图,分配一些数据,渲染视图和发送邮件!

$view = $this->getHelper('ViewRenderer')->view;

$view->email = $data['email'];    
$view->password = $data['password'];

$text = $view->render('mail/new-user.php');
$mail = new Zend_Mail();

$mail->addTo($data['email'], $data['forename'] . ' ' . $data['lastname']);
$mail->setSubject('Account Details');
$mail->setBodyText($text, 'utf-8');

$mail->send();
Run Code Online (Sandbox Code Playgroud)

在第一行中,我检索ViewRenderer的视图,以便我可以访问正常的脚本路径.您可以创建新的Zend_View对象,但是您需要手动添加视图脚本的路径.

在我的示例中,生成了基于文本的内容,但您可以生成完全相同的HTML.