AuthController от Laravel неправильно проверяет мои поля

1

Я пишу приложение в Laravel 5.1. Согласно документации, я могу аутентифицировать и проверять свои регистрационные формы, используя их AuthController.

Единственное поле, которое я хочу проверить, - это поле code-input.

<form method="POST">
    <div class="form-group">
        <label for="code-input">Code</label>
        <input type="text" name="code-input" class="form-control" id="code-input" placeholder="Type your code here">
    </div>
    <input type="hidden" name="_token" value="{{ csrf_token() }}" />
    <button type="submit" class="btn btn-default">Submit</button>
</form>

Однако всякий раз, когда я устанавливаю свой метод проверки в AuthController для проверки только этого поля и отправки пустой формы, я получаю сообщение об ошибке, которое требуется для поля электронной почты, и требуется поле пароля. Я имею в виду, что?

protected function validator(array $data)
{
    return Validator::make($data, [
        'code-input' => 'required|max:255'
    ]);
}

Изображение 174551

Мои маршруты также работают правильно:

Route::get('/', 'Auth\AuthController@getLogin');
Route::post('/', 'Auth\AuthController@postLogin');
Route::get('/logout', 'Auth\AuthController@getLogout');

Кто-нибудь знает, что происходит?

Теги:
validation
forms
laravel-5
laravel-5.1

2 ответа

1
Лучший ответ

Метод validator предназначен только для создания пользователей (регистрации). Вход полностью обрабатывается методом postLogin аутентификации AuthenticatesUsers, для которого требуется адрес электронной почты и пароль.

Есть способы легко изменить требования к электронной почте, но чтобы избавиться от обоих полей и заменить их кодом, вам придется написать себе новый метод postLogin.

  • 0
    Спасибо, ваш ответ дал мне наибольшее понимание проблемы, и теперь я знаю, что делать!
1

Вы проверяли функцию postLogin на AuthenticatesUsers.php? Он может иметь строку кодов примерно так, что приводит к ошибкам проверки:

$this->validate($request, [
   $this->loginUsername() => 'required', 'password' => 'required',
]);
  • 1
    Спасибо за этот ответ, но у andrewtweber был самый проницательный ответ из этих двух.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню