我想在其他控制器中使用重置密码邮件,因为我不知道如何在按钮中为邮件陷阱或电子邮件编码链接。因此,如果有一种方法可以调用相同的重置邮件密码,则可以为我节省一些时间。或者,如果有人可以告诉我如何在另一个邮件功能中编码该链接,我可以
这是我要使用的控制器
public function create()
{
$roles = Role::all();
$addresses = Address::all();
$user = new User();
return view('admin.create', compact('roles', 'addresses', 'user'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'address_id' => 'required',
'name'=> 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'role_id' => 'required',
'description' =>['max:255'],
]);
$quickpass = substr( str_shuffle( str_repeat( 'abcdefghijklmnopqrstuvwxyz0123456789', 10 ) ), 0, 10 );
$newuser = User::create([
'address_id' =>$request->address_id,
'name'=> $request->name,
'email' => $request->email,
'password' => Hash::make($quickpass),
'role_id' => $request->role_id,
'description'=> $request->description,
]);
Mail::to($newuser->email)
->send(new NewUserPassReset());
return view('admin.index')->with('message','The user has been created and a password reset email has been sent to them.');
}
NewUserPassReset是我自己创建的可邮寄邮件,仅包含消息但没有链接
现在,我正在使用mailtrap,上面是我的管理员,他是应该为我创建用户的人
我将不胜感激
答案 0 :(得分:2)
签出Illuminate\Auth\Notifications\ResetPassword.php
。
它具有您要查找的网址:
url(config('app.url').route('password.reset', ['token' => $token, 'email' => $email]))
如您所见,您将需要一个电子邮件和一个令牌来生成重置密码链接。
假设您知道电子邮件,则可以使用Illuminate\Support\Facades\Password
外观获取令牌:
$token = \Password::createToken($user)
希望这会有所帮助。