Мне нужно показать ошибку, такую как ошибка, когда пользователь вводит неправильные данные в форму входа, когда пользователь не вводит свой пароль. Я думаю, что мне следует перезаписать метод validateLogin ()
protected function validateLogin()
{
$this->validate(request(), [
'email' => 'required', 'password' => 'required'
]);
}
Но я не вижу сообщения об ошибке. Я получил сообщение об ошибке, когда оставил поле электронной почты пустым, но не тогда, когда оставил пустой пароль
нет, я использую аутентификацию по умолчанию
А что вы до сих пор пробовали в коде?
Я попытался перезаписать функцию sendFailedLoginResponse () в своем контроллере входа, но это не помогло
Если вы используете модуль auth и ничего не меняли в этих файлах, эта ошибка будет выдана по умолчанию. Как обязательный атрибут html required, так и, если вы удалили его из Inspector, будет выдана ошибка на стороне сервера, в любом случае эта ошибка будет выдана.
Как вы сказали, вы пытались переопределить sendFailedLoginResponse(), предоставив внесенные вами изменения.
Это ручная аутентификация, но вы сказали, что используете аутентификацию по умолчанию, она делает это. Вы сказали, что пытались переопределить sendFailedLoginResponse(), поэтому просто предоставьте этот код, и мы посмотрим, есть ли в нем какие-либо ошибки.
Поразмыслив, я думаю, что validateLogin - это правильная функция для изменения. но если все еще не возвращается сообщение об ошибке, если пароль пуст, защищенная функция validateLogin () {$ this-> validate (request (), ['email' => 'required', 'password' => 'required']); }






Проблема была не в методе ValidateLogin, а в представлении.
@if ($errors->has('email'))
<span class = "help-block" style = "margin-top:30px;">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
Мне просто нужно было иметь такое же условие if для пароля. Спасибо за вашу помощь
В вашем контроллере вы можете использовать что-то вроде этого:
$validator = Validator::make($request->all(), User::$auth_rules);
if ($validator->fails()){
return Redirect::back()->withErrors($validator)->withInput();
}
$remember=$request->has('remember')?true:false;
$user=User::where('email',$request->get('email'))->first();
if (Auth::attempt(array('email' => $request->input('email'), 'password' => $request->input('password')), $remember)){
return Redirect::route('dashboard');
}
return Redirect::route('login')->with('status','Invalid credentials');
Надеюсь, это поможет тебе.
Это происходит по умолчанию, если вы используете модуль аутентификации Laravel по умолчанию. Вы делаете собственный модуль входа в систему?