如何在用户控制器中输入外部变量,如在拉拉维尔邮件中


How to input external variable as in laravel mailer in users controller?

>我在laravel的用户控制器中有一个功能,允许用户在表单中输入他们的姓名和电子邮件,并向管理员发送电子邮件。但是当我尝试在 MailTo 函数中包含它们的变量时,它会出错。这是我的代码:

public function send_email_contact_us(){
        $name = Input::get('name');
        $email = Input::get('email');
        $message_contact = Input::get('message');
        $sender_email = Input::get('email');
            $sender_name = Input::get('name');
        $validator = Validator::make(
            array(
                'name' => $name,
                'email' => $email
            ), array(
                'name' => 'required',
                'email' => 'required',
            )
        );
        if ($validator->fails())
        {
            $error_messages = $validator->messages()->all();
            return Redirect::back()->with('flash_errors',"Message not sent, please try again.");
        }
        else
        {
            $data=array("name"=>$name,"email"=>$email,"message_contact"=>$message_contact);
            Mail::send('emails.contactus',$data, function($message)
            {
       $message->from($sender_email, $sender_name); // THIS GIVES ERROR
        $message->to("admin@admin.com")->subject('Contact Us');
            });
            return Redirect::back()->with('flash_success',"Message sent successfully.");
        }
    }

任何帮助将不胜感激。

更改为此

Mail::send('emails.contactus',$data, function($message) use($sender_email,$sender_name)
{
   $message->from($sender_email, $sender_name);
   $message->to("admin@admin.com")->subject('Contact Us');
});

要在闭包中使用外部变量,您必须使用 use 关键字将变量导入闭包中