首页 文章

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

提问于
浏览
2

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

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到达第二条消息时,我收到此错误

pagesController.php中的ErrorException第29行:未定义的变量:request

3 回答

  • 4

    用28替换第28行

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

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

  • 0

    它's not that you can' t使用它两次,但Mail :: send无法访问它 . 您需要使用 use 语句传递它:

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

    可能是你应该将$ 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');
        }
    

相关问题