Laravel : 我不能在同一个函数中两次使用 Request 对象

Laravel : I can't use Request object two times at the same function

我正在尝试建立联系表单,我希望它向网站电子邮件发送用户消息,我希望它向用户邮件发送消息,通知他他的消息已收到,所以我正在使用此代码在控制器中:

 public function mail(Request $request) {
     Mail::send('mail.mail', ['name'=>"$request->name" , 'email'=>"$request->email" , 'msg'=>"$request->message"], function($message) {
         $message->to('housma.elma@gmail.com', 'Housma')->subject('Housma.com enquiry');
     });

     Mail::send('mail.mailResponse', ['name'=>"$request->name"  ], function($message ) {
        /*line 29 */    
        $message->to("$request->email", "$request->name")->subject('Housma.com : Auto reply');
     });

     return Redirect::to('/contact')->with('successful', 'Your message has been sent');
}

我的电子邮件的第一条消息工作正常,但是当 Laravel 到达第二条消息时,我收到此错误

ErrorException in pagesController.php line 29: Undefined variable: request

将第 28 行替换为

Mail::send('mail.mailResponse', ['name'=>"$request->name"  ],
 function($message) use($request) {

在PHP中,如果要在闭包中使用变量,需要使用use ($variablename)

不是不能二次使用,而是Mail::send不能访问。您需要使用 use 语句将其传入:

 Mail::send('mail.mailResponse', ['name'=>"$request->name"  ], function($message ) use ($request) {

也许你应该将 $request 传递给闭包。 像这样!

Mail::send('mail.mailResponse', ['name'=>"$request->name"  ], function($message ) use ($request) {

/*line 29 */    $message->to("$request->email", "$request->name")->subject('Housma.com : Auto reply');
    });

      return Redirect::to('/contact')->with('successful', 'Your message has been sent');
    }