我正在与Laravel合作开发一个网站,我在同一页面上有注册和登录表格。唯一的问题是,如果我在登录表单上输入了错误的密码,错误将显示在密码输入下方的两个表单上。
我已经用谷歌搜索过这个,我看到其他一些人有这个问题,但他们都在开发低于 5.4 的版本,所有这些解决方案在 5.4 版本中都不同。有谁知道我到底需要改变什么才能完成这项工作?到目前为止,我已经将表单中的名称更改为"login_password"和"register_password",但这只会给我错误。
如果您要更改输入名称,则需要更新LoginController
和RegisterController
。
登录控制器
您将需要添加以下内容:
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 IlluminateContractsValidationValidator
*/
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']),
]);
}
您还需要通过将以下内容与其他use
语句放在文件顶部来包含Request
:
use IlluminateHttpRequest;
希望这有帮助!