CakeEmail :: viewVars - CakePHP

时间:2012-09-30 01:24:26

标签: email cakephp cakephp-2.0

我正在尝试根据以下配置设置变量$ 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();功能。有什么想法我有这个问题吗?

3 个答案:

答案 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)

看看我的回答Here

$emial->viewVars($valiables);
在您的电子邮件模板中打印

。然后你就可以看到你所有的变量:)

var_dump($this->viewVars);