2012-09-30 73 views
0

我想設置變量$購買每下面的配置我的電子郵件模板使用方法:CakeEmail :: viewVars - CakePHP的

App::uses('CakeEmail', 'Network/Email'); 
$email = new CakeEmail(); 
$email->emailFormat('html'); 
$email->template('new_order_email', 'default'); 
$email->from(array('[email protected]' => 'A Great Site')); 
$email->to($this->request->data['email']); 
$email->subject('Order details'); 
$email->viewVars($purchase); 
$email->send(); 

但是,當我嘗試使用$購買這不起作用變量在模板中。相反,它發送的電子郵件包含以下錯誤:

Notice (8): Undefined variable: purchase [APP/View/Emails/html/new_order_email.ctp, line 2]

這表明$購買是不可用的,即使我沒有使用CakeEmail設置變量:viewVars();功能。任何想法,爲什麼我有這個問題?

回答

4

最快和最短路徑:

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

它會通過VAR $purchase爲相同的密鑰「購買」到電子郵件viewVars,是你所需要的東西這裏。

你也可以快速添加更多的變量是這樣的:

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

$email->viewVars(compact('purchase', 'html', 'url')); 
5

使用此:

$email->viewVars(array('purchase' => $purchase)); 
+0

這一個也適用! – alieninlondon

0

看我的答案Here

$emial->viewVars($valiables); 
在你的郵件模板打印此

。那麼你將能夠看到你所有的變量:)

var_dump($this->viewVars);