不知道为什么会这样。
这是我正在测试的基本代码:
<?php
// get each user and send an email
$query = DB::table('users')->where('email', 'craiglovelock54@hotmail.co.uk')->get();
foreach ($query as $user) {
$email = $user->email;
$data = array();
Mail::send('emails.wereback', $data, function($message)
{
$message->from('hello@buildsanctuary.com', 'BuildSanctuary');
$message->to($email);
$message->subject("We are back online!");
});
}
?>
这给我一个未定义变量的错误&#39; $ email&#39;。
问题是,如果我不尝试发送电子邮件而只是回显$ email变量,那就完全正常了......
答案 0 :(得分:3)
您必须使用$email
关键字将use
变量导入到闭包的范围内:
Mail::send('emails.wereback', $data, function($message) use ($email)
{
$message->from('hello@buildsanctuary.com', 'BuildSanctuary');
$message->to($email);
$message->subject("We are back online!");
});