Laravel,注册并登录同一页面。两种形式的错误

时间:2017-03-24 10:36:17

标签: laravel laravel-5.4

我在Laravel的网站上工作,我在同一页面上有注册和登录表单。唯一的问题是,如果我在登录表单上输入了错误的密码,则错误将显示在密码输入下方的两个表单上。

我已经使用Google搜索了这个问题,但是我看到其他一些人遇到了这个问题,但他们都在开发5.4以下的版本,所有这些解决方案在版本5.4中都有所不同。有谁知道我需要改变什么来使这项工作? 到目前为止,我已将表单中的名称更改为“login_password”和“register_password”,但这只会给我带来错误。

1 个答案:

答案 0 :(得分:1)

如果您要更改输入名称的路线,则需要更新LoginControllerRegisterController

登录控制器

您需要添加以下内容:

protected function validateLogin(Request $request)
{
    $this->validate($request, [
        $this->username() => 'required', 'login_password' => 'required',
    ]);
}

protected function credentials(Request $request)
{
    return [
        $this->username() => $request->input($this->username()),
        'password'        => $request->input('login_password'),
    ];
}

RegisterController (这些方法应该已经存在于控制器中,您只需将password更新为register_password(如果适用)

/**
 * Get a validator for an incoming registration request.
 *
 * @param  array  $data
 * @return \Illuminate\Contracts\Validation\Validator
 */
protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'register_password' => 'required|min:6|confirmed',
    ]);
}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['register_password']),
    ]);
}

您还需要包含Request,方法是将以下内容放在文件顶部,并附上其他use语句:

 use Illuminate\Http\Request;

希望这有帮助!