我在Laravel的网站上工作,我在同一页面上有注册和登录表单。唯一的问题是,如果我在登录表单上输入了错误的密码,则错误将显示在密码输入下方的两个表单上。
我已经使用Google搜索了这个问题,但是我看到其他一些人遇到了这个问题,但他们都在开发5.4以下的版本,所有这些解决方案在版本5.4中都有所不同。有谁知道我需要改变什么来使这项工作? 到目前为止,我已将表单中的名称更改为“login_password”和“register_password”,但这只会给我带来错误。
答案 0 :(得分:1)
如果您要更改输入名称的路线,则需要更新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 \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;
希望这有帮助!