Cakephp 4.x将变量传递到电子邮件模板
在CakePHP 4.x中,mailer()函数遇到了一些问题,特别是将变量从控制器传递到模板 我需要一个用户能够收到一个项目列表电子邮件。我可以使用ajax将数组发送到控制器,但我无法让控制器将变量传递到电子邮件模板。我收到的是电子邮件,但不是动态内容,我只是无法通过setViewVars让它工作 我的控制器功能:Cakephp 4.x将变量传递到电子邮件模板,cakephp,cakephp-4.x,Cakephp,Cakephp 4.x,在CakePHP 4.x中,mailer()函数遇到了一些问题,特别是将变量从控制器传递到模板 我需要一个用户能够收到一个项目列表电子邮件。我可以使用ajax将数组发送到控制器,但我无法让控制器将变量传递到电子邮件模板。我收到的是电子邮件,但不是动态内容,我只是无法通过setViewVars让它工作 我的控制器功能: public function bar(): void { if( $this->request->is('ajax') ) { $this->request-
public function bar(): void
{
if( $this->request->is('ajax') ) {
$this->request->allowMethod('ajax');
$foo = $this->request->getQuery('data');
// data is a stringified array
$mailer = new Mailer("default");
$mailer->viewBuilder()->setTemplate('default','default');
$mailer
->setEmailFormat('html')
->setFrom(['email@email.com' => 'Comparaciones'])
->setTo('email@email.com')
->setSubject('About')
>setViewVars($foo)
->send();
// ->deliver() doesn't work either
}
}
我的模板:
// standard cakephp default template
$content = explode("\n", $content);
foreach ($content as $line) :
echo '<p> ' . $line . "</p>\n";
endforeach;
//标准cakephp默认模板
$content=explode(“\n”,$content);
foreach($行内容):
回音“”$线路。“\n”;
endforeach;
我可能被一些简单的东西绊倒了,我只是无法将数组放入模板中。非常感谢任何帮助 似乎您认为
setViewVars
在模板中设置了一个名为$content
的变量?如果您希望它像那样工作,请使用->setViewVars(['content'=>$foo])
。就像控制器中的->set
和模板中的->element
一样。非常感谢Greg!那很有魅力!!