使用Laravel Mail时未定义的变量

时间:2015-01-02 16:44:10

标签: php email laravel undefined

不知道为什么会这样。

这是我正在测试的基本代码:

<?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变量,那就完全正常了......

1 个答案:

答案 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!");
});