CAKE PHP 3.6 setViewVars不将变量传递到电子邮件模板

时间:2019-04-02 09:43:08

标签: php email cakephp cakephp-3.0

在Cake php 3.6框架中,我正在尝试设置电子邮件模板。

问题在于setViewVars没有将变量传递给视图。未定义的变量:将视图呈现给所有setViewVars键时会触发名称。

$this->layout = '/email/html/default';
$enviar = 'Formulário de Franchising: ' . $name . '. Com o Email: ' . $email_add;
$emails = array('andre@dri.pt');
$email = new Email('default');
$email->from([$email_add => $email_add])
    ->template('default')
    ->emailFormat('html')
    ->setViewVars(['name'    => $name,
                   'email'   => $email_add,
                   'phone'   => $phone,
                   'company' => $company,
                   $emailcheck,
                   $smscheck,
                   'message' => $data['message']
    ])
    ->to($emails)
    ->subject('Subscrição Formulário.')
    ->send($enviar);
$this->Flash->success(__('Formulário Enviado. Obrigado!'));
return $this->render('/email/html/default');

无法解决问题。在控制器端调试所有变量,使其具有正确的值。

编辑: 在视图中,我尝试使用$ this-> variable_name进行回显,并获得缺少的帮助程序错误。它说找不到助手。

1 个答案:

答案 0 :(得分:0)

您无需使用const tableau = new Vue({ components:{tableau:Tableau } }).$mount('#tableau'); ,可以在视图上使用$this->variable_name直接访问它们

根据variable_name文档:

您可以使用Cakephp

设置视图变量
Email::setViewViars():

在您的电子邮件模板中,您可以将它们用于:

$email = new Email('templated');
$email->setViewVars(['value' => 12345]);

Cakephp -> Email -> Sending Templated Emails