2012-02-12 27 views
16

Nel mio controllo Sto usando una funzione e-mail con il seguente codice:CakeEmail - Come si usa?

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'); 

In cima ho

App::uses('AppController', 'Controller', 'CakeEmail', 'Network/Email'); 

Tuttavia, ricevo l'errore Fatal error: Class 'CakeEmail' non trovato in.

Non sono sicuro di dove ho sbagliato. Qualcuno può aiutare?

+0

Downvoted per mancanza di ricerca. Era tutto nel libro: http://book.cakephp.org/2.0/en/core-utility-libraries/email.html?highlight=cakeemail#CakeEmail – luchomolina

+0

@luchomolina e ora di nuovo per la sesta volta in rialzo – bicycle

risposta

36

è necessario modificare la vostra applicazione :: usi e separare le due cose:

App::uses('AppController', 'Controller'); 
App::uses('CakeEmail', 'Network/Email'); 
+6

Puoi per favore spiega perché dovrebbero essere separati? Funziona, ma non ha senso. Mi piacerebbe sapere perché :) – Loolooii

+2

A causa del nuovo modo in cui la torta fa riferimento alle classi. –

+0

gli sviluppatori hanno pensato che fosse così ovvio? non c'è riferimento nei documenti .. – Juan

1

È possibile utilizzare il componente E-mail nel controller

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'); 
} 
+0

Questo non è consigliato; [EmailComponent è stato deprecato in CakePHP 2] (http://book.cakephp.org/2.0/en/core-libraries/components/email.html). –