我正在尝试构建联系表单,我希望它发送用户邮件以发送网站电子邮件,我希望它发送用户邮件的消息通知他收到了他的邮件,所以我使用了控制器中的这段代码:
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第29行中的ErrorException:未定义的变量:request
答案 0 :(得分:4)
不是你不能两次使用它,而是Mail :: send无法访问它。您需要使用use
语句传递它:
Mail::send('mail.mailResponse', ['name'=>"$request->name" ], function($message ) use ($request) {
答案 1 :(得分:1)
用
替换第28行Mail::send('mail.mailResponse', ['name'=>"$request->name" ],
function($message) use($request) {
在PHP中,如果要在闭包中使用变量,则需要使用use ($variablename)
答案 2 :(得分:0)
可能是你应该将$ 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');
}