我的代码是这样的:
public function handle(UserRegisteredEvent $event)
{
$data = $event->data;
$name = $data['name'];
$email = $data['email']; //tri@gmail.com
Mail::send('emails.welcome', ['name' => $name], function($m){
$m->to($email)
->subject('Transaction Details');
});
}
执行时,存在如下错误:
Undefined variable: email
$email
变量在邮件关闭函数中无法识别,您必须使用 use
关键字将其显式传递给闭包函数,如下所示:
public function handle(UserRegisteredEvent $event)
{
$data = $event->data;
$name = $data['name'];
$email = $data['email']; //tri@gmail.com
Mail::send('emails.welcome', ['name' => $name], function($m) use ($email) {
$m->to($email)
->subject('Transaction Details');
});
}
在使用函数闭包时,您需要使用 use
才能在内部使用变量。
试试这个:
Mail::send('emails.welcome', ['name' => $name], function($m) use ($email) {
$m->to($email)
->subject('Transaction Details');
});