J'essaie d'utiliser la classe Mail dans Laravel 4, et je ne suis pas en mesure de transmettre des variables à l'objet $ m.
l'objet $ team contient des données que j'ai extraites de la base de données avec éloquent.
Mail::send('emails.report', $data, function($m)
{
$m->to($team->senior->email, $team->senior->first_name . ' '. $team->senior->last_name );
$m->cc($team->junior->email, $team->junior->first_name . ' '. $team->junior->last_name );
$m->subject('Monthly Report');
$m->from('[email protected]', 'Sender');
});
Pour une raison quelconque, j'obtiens une erreur où l'objet $ team n'est pas disponible. Je suppose que cela a quelque chose à voir avec la portée.
Des idées ?
Si vous instanciez le $team
variable en dehors de la fonction, alors ce n’est pas dans la portée des fonctions. Utilisez le mot-clé tiliser .
$team = Team::find($id);
Mail::send('emails.report', $data, function($m) use ($team)
{
$m->to($team->senior->email, $team->senior->first_name . ' '. $team->senior->last_name );
$m->cc($team->junior->email, $team->junior->first_name . ' '. $team->junior->last_name );
$m->subject('Monthly Report');
$m->from('[email protected]', 'Sender');
});
Remarque: la fonction utilisée est un fermeture PHP (fonction anonyme) Elle n'est pas exclusive à Laravel.