@dentxt

Как добавить свою валидацию при регистрации в Laravel?

Я хочу добавить поле в форму регистрации Laravel, в которое нужно будет ввести ключ, данный мною. Если, введенный ключ будет найден в таблице БД то регистрация успешна, или же в противном случае - ошибка.
Базовая валидация устроена таким образом:
$validator = Validator::make($data, [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
        ]);


Как добавить сюда функцию, которая ищет ключ и в результате возвращает ответ T или F - не знаю.
В методе "create", который записывает в базу пользователя - не позволяет сделать проверку в себе. Так как метод должен в любом случае вносит данные в БД, так что сделать редирект обратно не получиться, ибо будет ошибка.
Как это сделать по-человечески?
  • Вопрос задан
  • 541 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Kostik_1993
Web Developer
С каждым днем вопросы все тупее и тупее. Если бы вы хотя бы открыли доку и подумали немного мозгами то поняли, что вам всего лишь нужно добавить в массив еще одну строку с названием вашего поля и правилами проверки
'key' => 'required|exists:названиетаблицысключами,названиестолбца'

А вот вам ссылочка на документацию чтобы больше не позориться
Ответ написан
Комментировать
@ynblpb_spb
дятел php
$validator = Validator::make($data, [
      'name' => 'required|string|max:255',
      'email' => 'required|string|email|max:255|unique:users',
      'password' => 'required|string|min:6|confirmed',
   ]);
$validator->after(function ($validator) {
   // проводим проверку на соответствие с БД
   if (....) {
      $validator->errors()->add('key', 'Неправильный ключ');
   }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы