在 Laravel 4中将数据传递给闭包

我正在尝试使用 Laravel 4中的 Mail Class,但是我无法将变量传递给 $m 对象。

$team 对象包含我从数据库中获得的雄辩数据。

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('info@website.example', 'Sender');
});

由于某种原因,我得到 $team 对象不可用的错误。我想这和瞄准镜有关。

43449 次浏览

如果在函数之外实例化了 $team变量,那么它就不在 function 作用域中。使用 使用关键字。

$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('info@website.example', 'Sender');
});

注意: 所使用的函数是一个 abc0函数,它不是 Laravel 独有的函数。