Laravel 5.4 возвращает сообщение об ошибке, если пользователь пытается войти без пароля

Мне нужно показать ошибку, такую ​​как ошибка, когда пользователь вводит неправильные данные в форму входа, когда пользователь не вводит свой пароль. Я думаю, что мне следует перезаписать метод validateLogin ()

    protected function validateLogin()
{

    $this->validate(request(), [
        'email' => 'required', 'password' => 'required'
    ]);
}

Но я не вижу сообщения об ошибке. Я получил сообщение об ошибке, когда оставил поле электронной почты пустым, но не тогда, когда оставил пустой пароль

Это происходит по умолчанию, если вы используете модуль аутентификации Laravel по умолчанию. Вы делаете собственный модуль входа в систему?

prit.patel 16.05.2018 10:35

нет, я использую аутентификацию по умолчанию

Sara Shokry 16.05.2018 10:36

А что вы до сих пор пробовали в коде?

Mayank Pandeyz 16.05.2018 10:37

Я попытался перезаписать функцию sendFailedLoginResponse () в своем контроллере входа, но это не помогло

Sara Shokry 16.05.2018 10:39

Если вы используете модуль auth и ничего не меняли в этих файлах, эта ошибка будет выдана по умолчанию. Как обязательный атрибут html required, так и, если вы удалили его из Inspector, будет выдана ошибка на стороне сервера, в любом случае эта ошибка будет выдана.

prit.patel 16.05.2018 10:40

Как вы сказали, вы пытались переопределить sendFailedLoginResponse(), предоставив внесенные вами изменения.

prit.patel 16.05.2018 10:44
laravel.com/docs/5.4/authentication#authenticating-users Думаю, это поможет, но как кидать ошибки?
Sara Shokry 16.05.2018 10:48

Это ручная аутентификация, но вы сказали, что используете аутентификацию по умолчанию, она делает это. Вы сказали, что пытались переопределить sendFailedLoginResponse(), поэтому просто предоставьте этот код, и мы посмотрим, есть ли в нем какие-либо ошибки.

prit.patel 16.05.2018 10:54

Поразмыслив, я думаю, что validateLogin - это правильная функция для изменения. но если все еще не возвращается сообщение об ошибке, если пароль пуст, защищенная функция validateLogin () {$ this-> validate (request (), ['email' => 'required', 'password' => 'required']); }

Sara Shokry 16.05.2018 11:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
9
534
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема была не в методе 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');

Надеюсь, это поможет тебе.

Другие вопросы по теме