我正在尝试根据以下配置设置变量$ purchase以在我的电子邮件模板中使用:
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail();
$email->emailFormat('html');
$email->template('new_order_email', 'default');
$email->from(array('info@mydomain.com' => 'A Great Site'));
$email->to($this->request->data['email']);
$email->subject('Order details');
$email->viewVars($purchase);
$email->send();
但是当我尝试在模板中使用$ purchase变量时,这不起作用。相反,发送的电子邮件包含以下错误:
注意(8):未定义的变量:购买 [APP / View / Emails / html / new_order_email.ctp,第2行]
这表明$ purchase无法使用,即使我使用CakeEmail设置了该变量:viewVars();功能。有什么想法我有这个问题吗?
答案 0 :(得分:5)
使用此:
$email->viewVars(array('purchase' => $purchase));
答案 1 :(得分:4)
最快最短的方式:
$email->viewVars(compact('purchase'));
它会将变量$purchase
作为相同的密钥“购买”传递到电子邮件viewVars中,这正是您所需要的。
您还可以通过这种方式快速添加更多变量:
$html = 'foo';
$url = '/my/url';
$email->viewVars(compact('purchase', 'html', 'url'));
答案 2 :(得分:0)