Laravel邮件功能 - 范围问题?

时间:2015-05-14 02:30:54

标签: php laravel scope

我正在使用laravel的Mail功能发送用户的确认电子邮件。问题是,我收到错误“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 ..的调用范围不同。

关于如何解决这个问题的任何想法?

3 个答案:

答案 0 :(得分:1)

你应该在你的闭包中使用use语句来包含"包括" $email$name变量:

\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');
    }
);

答案 1 :(得分:0)

你需要使用那些变量

$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');
});

答案 2 :(得分:0)

您收到此错误是因为您尝试使用未定义的变量' email'在一个函数中,所以你需要包含一个' use'发表声明'电子邮件'闭包中可用的变量,如下所示:


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

\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'); });
\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'); });