我在Laravel 5.1中遇到了密码重置过程的一些问题
步骤制作:
在该表格中,我使用相同的表格,在此处https://laravel.com/docs/5.1/authentication#resetting-passwords"示例密码重置表单"
我刚注意到隐藏的电子邮件字段没有填充
<input type="email" name="email" value="{{ old('email') }}">
当我使用laravel的默认方法时,它会调用 -
public function getReset($token = null)
{
if (is_null($token)) {
throw new NotFoundHttpException;
}
return view('auth.reset')->with('token', $token);
}
显然,没有电子邮件变量传递给视图,并在提交后点击postReset
-
public function postReset(Request $request)
{
$this->validate($request, [
'token' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed|min:6',
]);
$credentials = $request->only(
'email', 'password', 'password_confirmation', 'token'
);
$response = Password::reset($credentials, function ($user, $password) {
$this->resetPassword($user, $password);
});
switch ($response) {
case Password::PASSWORD_RESET:
return redirect($this->redirectPath())->with('status', trans($response));
default:
return redirect()->back()
->withInput($request->only('email'))
->withErrors(['email' => trans($response)]);
}
}
所以主要问题是当我使用laravel 5.1文档中的默认指南时,电子邮件字段不会填充。
我应该像令牌一样传递电子邮件参数,还是我错过了什么?
答案 0 :(得分:0)
只需在模型User.php
中添加以下代码
/**
* Send the password reset notification.
*
* @param string $token
* @return void
*/
public function sendPasswordResetNotification($token)
{
$this->notify(new ResetPasswordNotification($token.'/'.$this->email));
}