ссылка на видео

 

Для начала установим пакет для валидации Respect/Validation

composer require respect/validation

 

Для работы с данным пакетом в интернете есть много материала. Некоторые полезные ссылки:

https://webformyself.com/respect-validation-udobnyj-instrument-validacii-dannyx/

https://habrahabr.ru/post/308298/

https://www.youtube.com/watch?v=GhlSXyjPR7Y

Создаём класс валидации с методом validate, который принимает в качестве аргументов $request и массив правил валидации.

В контейнер добавим новый элемент validator

В контроллере AuthController прописываем правила валидации для заполняемых данных

use Respect\Validation\Validator as v;

Правила валидации описаны в официальной документации:

https://github.com/Respect/Validation/tree/master/docs

Проверим работу валидатора. При попытке отправить данные через форму, успешно отрабатывает наш валидатор, создаются объекты используемого класса для каждой проверяемой переменной.

 

Внесём изменения в метод validate. Так как данные у нас передаются в массиве то используем foreach для перебора всех его элементов и значений (наименование поля -> правило)

При несоответствии валидации assert генерирует исключение, которое записывает в массив $error сообщение.

 

Добавим метод failed который будем использовать в AuthController.

И в методе validate сделаем return $this, возвращаем объект для дальнейшего оперирования с его свойствами.

Если не пройдена валидация вернём массив ошибок: return !empty($this->errors);

Если валидация не пройдена то редирект на страницу регистрации

Иначе добавляем данные в базу