CakeEmail::viewVars-CakePHP
我正在尝试根据以下配置设置要在电子邮件模板中使用的变量$PUSHARY:CakeEmail::viewVars-CakePHP,email,cakephp,cakephp-2.0,Email,Cakephp,Cakephp 2.0,我正在尝试根据以下配置设置要在电子邮件模板中使用的变量$PUSHARY: 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')
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();
但当我尝试在模板中使用$PUSHARE变量时,这不起作用。相反,发送的电子邮件包含以下错误:
注意8:未定义变量:purchase
[APP/View/Emails/html/new_order_email.ctp,第2行]
这表明$purchase不可用,即使我使用CakeEmail:viewVars;作用你知道我为什么会有这个问题吗?用这个:
$email->viewVars(array('purchase' => $purchase));
最快和最短的方式:
$email->viewVars(compact('purchase'));
它会将var$purchase作为相同的键“purchase”传递到电子邮件viewVars中,这正是您在这里需要的
您还可以通过以下方式快速添加更多变量:
$html = 'foo';
$url = '/my/url';
$email->viewVars(compact('purchase', 'html', 'url'));
看看我的答案
在您的电子邮件模板中打印此内容。然后您将能够看到所有变量:
$emial->viewVars($valiables);
var_dump($this->viewVars);