我在Laravel 5.1中遇到了一些密码重置过程的问题

步骤产生:

  • 忘记密码页面(输入密码,重置链接将作为电子邮件发送)

  • 来自电子邮件的用户将点击类似于http://domain.com/password/reset/的链接表格将显示输入新密码并重新输入密码

在那个形式我使用相同的形式给这里https://laravel.com/docs/5.1/authentication#resetting-passwords "Sample Password Reset Form"

我刚刚注意到隐藏的电子邮件字段没有填充

<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文档中的默认指南时,主要问题是电子邮件字段没有填充 .

我应该像令牌一样传递电子邮件参数,还是我错过了什么?