【问题标题】:Why undefined variable: email in send email laravel 5.3?为什么未定义变量:发送电子邮件 laravel 5.3 中的电子邮件?
【发布时间】:2017-01-12 14:49:14
【问题描述】:
我的代码是这样的:
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
【问题讨论】:
标签:
php
laravel
laravel-5.3
【解决方案1】:
$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');
});
}
【解决方案2】:
在使用函数闭包时,您需要使用use 来使用内部变量。
试试这个:
Mail::send('emails.welcome', ['name' => $name], function($m) use ($email) {
$m->to($email)
->subject('Transaction Details');
});