2015-12-14 3 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, я должен добавить, что я недавно обновил до версии 2.7 от 1.3. – user1658296

+0

Просто, чтобы исключить это, вы проверили, что '/ var/www/html/mysite/app/View/Themed/Xyz/Emails/html/add.ctp' читается Apache? –

ответ

1

Вы должны явно установить тему в CakeEmail:

$Email->theme('xyz') 

, как описано в 2.x Cookboox: Sending Templated Emails.

сообщение об ошибке указывает вас к правильному пути, но CakePHP ищет файл в:

/app/Emails/html/add.ctp 

Это может быть из-за ошибки.