Bonjour,

Pour un de mes projets web, je fais une requête dans un de mes Controller : ConvocController, qui récupère une adresse mail.
J'aimerais utiliser le résultat dans une fonction qui elle est dans mon model Convoc.

ConvocController.php

if($this->request->is('post')){
            //$this->Convoc->m;
            //Si le message est envoyé
            if($this->Convoc->send($this->request->data'Convoc'])){
                    //On fait appel à setFlash et on affiche envoyé
                    $this->Session->setFlash("Envoyé");
                    //On vide le formulaire après l'envoi
                    $this->request->data = array();
                //Sinon on indique qu'un problème à eu lieu

            }else{
                $this->Session>-setFlash("Un problème a eu lieu");
            }       
        }

Il envoie à la fonction send() de mon model les données de mon formulaire pour les envoyer par mail.

Convoc.php

public function send($d){
            $this->set($d);
            //Si les règles sont validés
            if($this->validates()){
                //On charge l'API CakeEmail avec le nom et le path en paramètrs
                App::uses('CakeEmail', 'Network/Email');
                $mail = new CakeEmail('gmail');
                    //to ( ******** )
                $mail->to($_SESSION'x'])
                    ->from(' *********')
                     ->subject('test')
                     ->emailFormat('html')
                     ->template('confirmation')->viewVars($d);
                    return $mail->send();
            }else{
                return false;
            }
    }

Ma fonction récupère en paramètre les données du formulaire.
Mais j'aimerais que l'adresse du destinataire : ->from(*****) soit celle du résultat de ma requête.

Comment puis-je faire pour récupérer cette variable présente dans le controller et l'utiliser dans ma fonction du model?

Merci d'avance pour votre aide !

1 réponse


Rajoute un deuxième paramètre $from dans ta fonction send

if($this->Convoc->send($this->request->data'Convoc'], 'contact@example.com)){
    ...           
}
public function send($d, $from){
            $this->set($d);
            //Si les règles sont validés
            if($this->validates()){
                //On charge l'API CakeEmail avec le nom et le path en paramètrs
                App::uses('CakeEmail', 'Network/Email');
                $mail = new CakeEmail('gmail');
                    //to ( ******** )
                $mail->to($_SESSION'x'])
                    ->from($from)
                     ->subject('test')
                     ->emailFormat('html')
                     ->template('confirmation')->viewVars($d);
                    return $mail->send();
            }else{
                return false;
            }
    }