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

时间:2016-04-22 07:44:33

标签: 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>

1 个答案:

答案 0 :(得分:5)

作为manual报告

您可以这种方式设置电子邮件视图变量:

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

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