Существует два простых способа внедрить валидацию в ваши модели, вы можете комбинировать их по желанию. Также есть один сложный путь. Для начала вы должны наследовать ваши модели от SleepingOwl\Models\SleepingOwlModel.

Простой путь

1. Используя элементы формы

Вы можете добавить правила валидации к элементу формы:

FormItem::text('title')->required()->unique()->validationRule('my-custom-rule')

required() принимает один параметр: true — если поле обязательно только при создании новой записи, false — если поле обязательно всегда. Если параметр не указан — используется false.

Используйте unique() чтобы указать, что поле должно быть уникальным в пределах модели.

Вы можете использовать validationRule($rule) чтобы добавить любое правило, которое вам нужно. Вы можете использовать разделитель |.

2. Используя модель

Вы можете создать метод public function getValidationRules() в вашей модели, который будет возвращать правила валидации.

Сложный путь

Сложный путь состоит в имплементации в вашей модели интерфейса SleepingOwl\Models\Interfaces\ValidationModelInterface. Он определяет 2 метода: validate($data) и getValidationRules(). Вы должны вручную написать валидацию в этих методах. Если данные не прошли валидацию необходимо создать ошибку SleepingOwl\Admin\Exceptions\ValidationException.

Дополнительные правила валидации

  • url_stub – в поле содержится правильная часть url`а (без слэшей)
  • url_stub_full – в поле содержится правильная часть url`а (включая слэши)