为什么我在Laravel方法中得到未定义的变量错误?

时间:2017-12-04 00:37:01

标签: php laravel

我在PageController中创建了一个Laravel方法,用于在发送表单数据时发送电子邮件,如下所示:

public function sendMessage(Request $request)
{

    $name = $request->input('name');
    $email = $request->input('email');
    $message_content = $request->input('message');

    // email message
    Mail::raw($message_content, function ($message) 
    {
        $message->from($email, $name);
        // $message->to(env('APP_ADMIN_EMAIL'));
        $message->to("myemail@mail.com");
        $message->subject('Website Message');
    });

    return "message sent";

}

但是在调用方法时我得到了这个错误:

  

ErrorException未定义的变量:电子邮件

有人可以解释我做错了吗?

1 个答案:

答案 0 :(得分:9)

您需要将变量传递给闭包:

Mail::raw($message_content, function ($message) use ($email, $name)
{
    $message->from($email, $name);
    $message->to("myemail@mail.com");
    $message->subject('Website Message');
});

请参阅文档:https://secure.php.net/manual/en/functions.anonymous.php