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');
}
我正在尝试建立联系表单,我希望它向网站电子邮件发送用户消息,我希望它向用户邮件发送消息,通知他他的消息已收到,所以我正在使用此代码在控制器中:
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');
}