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 !
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;
}
}