2015-12-14 31 views
2

我有一個控制器QuickContacts與動作add()它使用CakeEmail發送消息,像這樣的時候丟失:CakeEmail錯誤地報告一個模板使用主題

$Email = new CakeEmail(); 
$Email->from(array('[email protected]' => 'xyz')); 
$Email->to(($this->isBranded) ? $this->brandedAccount['BrandedAccount']['contact_us_email'] : EMAIL_TO_MAIL_ADDRESS); 
$Email->subject(EMAIL_QUICK_CONTACTS_SUBJECT); 
$Email->emailFormat('html')->template('add', 'default'); 
$Email->message($this->request->data); 

$Email->send(); 

當我嘗試發送郵件,我得到指示視圖文件不存在的錯誤:

Missing View 
Error: The view for QuickContactsController::add() was not found. 

Confirm you have created the file: Emails/html/add.ctp in one of the following paths: 

/var/www/html/mysite/app/View/Themed/Xyz/Emails/html/add.ctp 

我當然可以證實這些文件的存在,但由於某些原因CakePHP的仍然是無法找到他們,我想不通爲什麼會正在發生。任何人都可以將我指向正確的方向嗎?

+0

請發佈您的確切CakePHP版本 –

+0

@InigoFlores嗨,它是2.7版本,我應該添加我剛剛從1.3升級到2.7。 – user1658296

+0

只是爲了排除,你有沒有檢查過 '/ var/www/html/mysite/app/View/Themed/Xyz/Emails/html/add.ctp'是否可以被Apache讀取? –

回答

1

你必須明確地設置主題CakeEmail

$Email->theme('xyz') 
如Cookboox 2.x的描述

Sending Templated Emails

錯誤消息指向你走向正確的路徑,但CakePHP會在尋找你的文件:

/app/Emails/html/add.ctp 

這可能是由於一個錯誤。