Ответ 1
Вам нужно изменить использование App:: и отделить два:
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
В моем контроллере я использую функцию электронной почты со следующим кодом:
public function email($mail = null){
$email = new CakeEmail('default');
$email->config('default');
$email->from(array('[email protected]' => 'testing'));
$email->to('$mail');
$email->subject('Approved');
$email->send('Approved');
В верхней части я
App::uses('AppController', 'Controller', 'CakeEmail', 'Network/Email');
Тем не менее, я получаю ошибку Fatal error: Class 'CakeEmail' не найден.
Я не уверен, где я ошибся. Может ли кто-нибудь помочь?
Вам нужно изменить использование App:: и отделить два:
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
App::uses()
разрешает только два аргумента: $className
и $location
. Вы передали 4 аргумента, поэтому CakeEmail не загружен.
Подробнее о http://api20.cakephp.org/class/app#method-Appuses и http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#App::uses
документация довольно понятна: http://book.cakephp.org/2.0/en/core-utility-libraries/email.html?highlight=cakeemail#CakeEmail
"Прежде всего, вы должны убедиться, что класс загружен"
на втором взгляде: ваше приложение:: uses() неверно. проверьте, как он документирован.
Вы можете использовать компонент электронной почты в контроллере
public $components = array('Email');
public function email(){
$this->Email->to = '[email protected]';
$this->Email->subject = 'Subject - ';
$this->Email->from = '[email protected]';
$this->Email->send('message');
}