Php 为什么在Laravel方法中会出现未定义的变量错误?

Php 为什么在Laravel方法中会出现未定义的变量错误?,php,laravel,Php,Laravel,我在PageController中创建了一个Laravel方法,用于在发送表单数据时发送电子邮件,如下所示: public function sendMessage(Request $request) { $name = $request->input('name'); $email = $request->input('email'); $message_content = $request->input('message'); // em

我在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未定义变量:电子邮件


有人能解释一下我做错了什么吗?

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

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