Php 电子邮件值未定义
我有一个功能,注册用户,并在那里它应该发送一封欢迎电子邮件Php 电子邮件值未定义,php,laravel,email,lumen,Php,Laravel,Email,Lumen,我有一个功能,注册用户,并在那里它应该发送一封欢迎电子邮件 public function register(Request $request) { $this->validate($request, [ 'email' => 'required|email|unique:users,email,', 'password' => ['required', 'min:6',
public function register(Request $request) {
$this->validate($request, [
'email' => 'required|email|unique:users,email,',
'password' => ['required',
'min:6',
'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%_]).*$/',
'confirmed'],
'password_confirmation' => 'required',
'name' => 'required',
]);
$user = User::create([
'name' => $request->get('name'),
'email' => $request->get('email'),
'password' => Hash::make($request->get('password')),
]);
$email = $request->get('email');
$data = array('name' => $request->get('name'));
Mail::send(['text' => 'mail.mail'], $data, function ($message) {
$message->to($email)->subject
('MySite - Welcome');
$message->from('info@mysite.com', 'MySIte');
});
return response()->json(compact('user'), 200);
}
但成功注册后,我收到一条错误消息,电子邮件字段未定义。当然,不会发送电子邮件
这可能是什么原因
如果我在发送电子邮件之前添加$email,我会得到正确的电子邮件地址。由于PHP变量的作用域,此函数中未定义$email: 您可以使用use关键字将其传递给函数:
由于PHP变量的作用域是如何确定的,因此此函数中未定义$email: 您可以使用use关键字将其传递给函数:
Mail::send(['text' => 'mail.mail'], $data, function ($message) {
$message->to($email) ...
});
Mail::send(['text' => 'mail.mail'], $data, function ($message) use($email) {