除了设置 View 变量之外,没有办法使用CakeEmail
. 但是,您可以进行扩展CakeEmail
,以便将电子邮件的主题添加到模板中的可用变量中。
我还没有测试过这个,但你应该能够做这样的事情: -
// app/Lib/CustomCakeEmail.php
App::uses('CakeEmail', 'Network/Email');
class CustomCakeEmail extends CakeEmail {
protected function _renderTemplates($content) {
if (!empty($this->_subject) && empty($this->_viewVars['subject'])) {
$this->_viewVars['subject'] = $this->_subject;
}
return parent::_renderTemplates($content);
}
}
这里CakeEmail::_renderTemplates()
扩展为在视图变量中设置主题(只要它尚未在其他地方设置)。然后,您将使用扩展类而不是CakeEmail
这样:-
App::uses('CustomEmail', 'Lib');
$Email = new CustomCakeEmail();
$Email->template('my_template', 'my_layout');
$Email->subject('My Subject');
您的视图模板将有一个$subject
包含电子邮件主题的变量。