email - CakePHP 3 - 如何在电子邮件模板中传递对象数据

标签 email cakephp

如何在电子邮件模板中传递对象数据? 对象数据:

    object(App\Model\Entity\NewsletterTemplate) {

        'id' => (int) 1,
        'title' => 'Newsletter 1',
        'publish' => '21.04.2016',
        'box_title1' => 'Aenean id erat ut leo semper viverra',
        'box_text1' => 'Integer eu orci viverra',
...
    }

电子邮件功能:

private function _send_mail($data,$user,$sender)
{
 $email = new Email('default');
 $email->template('newsletter_template','newsletter_body')
 ->emailFormat('html')
 ->subject('Newsletter')
 ->to($user)
 ->from([$sender => 'Some Name'])
 ->viewVars($data)
 ->send();
}

我试过了,但它不起作用(电子邮件模板 newsletter_template.ctp):

...
                        <td class="mcnTextContent mcnTextContentLeft" style="padding-top:0; padding-left:18px; padding-bottom:9px; padding-right:18px;" valign="top">                       
                            <?php echo $title; ?>, <?php echo $publish; ?>
...
                        </td>

最佳答案

作为manual报告

您可以通过这种方式设置电子邮件 View 变量:

$email->viewVars([
    'title' => $title,
    'publish' => $publish
]);

当然你也可以使用这个方法传递整个实体

关于email - CakePHP 3 - 如何在电子邮件模板中传递对象数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36787890/

相关文章:

forms - CakePHP - 输入选择不从变量中获取选择选项

javascript - Cakephp 2.4 JSHelper 确认使用 Dialog 而不是 Javascript 确认

php - CakePHP 和命名空间?

PHP 群发电子邮件最佳实践? (PHPMailer + Gmail)

email - 我可以使用邮戳来创建线索式回复吗?

javascript - 使用微格式但保护您的电子邮件(使用 Javascript)

cakephp - 同一域中不同 Cakephp 实例的多个 session

Java字符串解析器查找字符串,保存并打印它

JavaMail 不发送邮件

php - Qcodo vs. CakePHP vs. Zend