Laravel 邮件功能 - 范围问题?

Laravel mail function - scope issue?

我正在使用 laravel 的邮件功能发送用户的确认电子邮件。问题是,我收到一个错误 "Undefined variable: email"

这是我的代码:

    $email="someemail@gmail.com";
    $name="thename";

    \Mail::send('emails.verify', ['confirmation_code' => $user->confirmation_code], function($message) {
        $message->from('myemail@myserver.com', 'Confirmation')->to($email, $name)->subject('Please verify your email address');
    });

显然声明的变量 $email 和 $name 与调用 $message->from.. 的范围不同..

关于如何解决这个问题有什么想法吗?

您应该在 "include" $email$name 变量的闭包中使用 use 语句:

\Mail::send('emails.verify', 
    ['confirmation_code' => $user->confirmation_code], 
    function($message) use ($email, $name) {
        $message->from('myemail@myserver.com', 'Confirmation')
                ->to($email, $name)
                ->subject('Please verify your email address');
    }
);

你需要使用那些变量

$email="someemail@gmail.com";
$name="thename";

\Mail::send('emails.verify', ['confirmation_code' => $user->confirmation_code], function($message) use ($email,$name) {
    $message->from('myemail@myserver.com', 'Confirmation')->to($email, $name)->subject('Please verify your email address');
});

您收到此错误是因为您试图在函数中使用未定义的变量 'email',因此您需要包含一个 'use' 语句以使 'email' 变量在函数中可用闭包,像这样:


  $email="someemail@gmail.com";
  $name="thename";</p>

<code>\Mail::send('emails.verify', ['confirmation_code' => $user->confirmation_code], function($message) use ($email){
    $message->from('myemail@myserver.com', 'Confirmation')->to($email, $name)->subject('Please verify your email address');
});