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行目]

これは、CakeEmail:viewVars();を使用してその変数を設定したにもかかわらず、$purchaseが使用できないことを示しています。働き。私がこの問題を抱えている理由は何ですか?

4

3 に答える 3

5

これを使って:

$email->viewVars(array('purchase' => $purchase));
于 2012-09-30T01:35:00.087 に答える
4

最短かつ最短の方法:

$email->viewVars(compact('purchase'));

var$purchaseを同じキー「purchase」として電子メールviewVarsに渡し、まさにここで必要なものです。

この方法で変数をすばやく追加することもできます。

$html = 'foo';
$url = '/my/url';

$email->viewVars(compact('purchase', 'html', 'url'));
于 2012-09-30T07:08:03.903 に答える