Валідація - документація phalcon 3

Базовий компонент валідації Phalcon надає наступні правила перевірки:

Додаткові перевірки можуть бути реалізовані самостійно. Наступний клас пояснює, як створити правило валідації для цього компонента:

Важливо пам'ятати, що валідатори повертають логічне значення, що показує, пройшла валідація успішно, або ні.

Перевірка через функцію зворотного визова¶

За допомогою Phalcon \ Validation \ Validator \ Callback ви можете виконати настроюється функцію, яка повинна повертати boolean або новий клас валідатора, який буде використовуватися для перевірки того ж поля. Після повернення true перевірка була успішною, повернення false означатиме, що перевірка не пройшла. При виконанні цього валідатора Phalcon буде передавати дані в залежності від того, що це таке - якщо це об'єкт, то буде переданий об'єкт, інакше дані. наприклад:

повідомлення валідаціі¶

Компонент Phalcon \ Validation має внутрішню підсистему роботи з повідомленнями. Вона забезпечує гнучку роботу з зберіганням і виведенням перевірочних повідомлень, що генеруються в ході перевірки.

Кожне повідомлення складається з екземпляра класу Phalcon \ Validation \ Message. Набір згенерованих повідомлень може бути отриманий за допомогою методу getMessages (). Кожне повідомлення містить розширену інформацію - атрибут, текст і тип повідомлення:

Ви можете передати повідомлення параметром за замовчуванням в кожен валідатор:

За замовчуванням метод getMessages () повертає всі повідомлення згенеровані валідатором. Ви можете відфільтрувати повідомлення використовуючи filter ():

фільтрація данних¶

Дані фільтруються для того, щоб бути впевненим, що шкідливі або невірні дані не будуть пропущені додатком.

Фільтрація і очищення виробляються за допомогою компонента filter. Ви можете додавати в нього свої фільтри, або користуватися вбудованими.

події валідаціі¶

Коли в класах визначена валідація, ви також можете реалізувати методи beforeValidation () і afterValidation (). щоб додати додаткові перевірки, очищення і т.п. Якщо beforeValidation () повертає 'false', валідація НЕ буде пройдена:

скасування валідаціі¶

За замовчуванням перевіряються всі валідатори, присвоєні полю, незалежно від того, чи успішно пройшла валідація одного з них чи ні. Ви можете змінити таку поведінку, якщо вкажете валідатора на якому з правил йому слід зупинити подальшу перевірку:

Перший валідатор має властивість 'cancelOnFail' => true, тому якщо валідація не пройде цю перевірку, то подальші перевірки в ланцюжку не будуть виконані.

Якщо ви створюєте власні валідатори, то можете динамічно зупиняти їх використовуючи властивість 'cancelOnFail':

Уникнення перевірки порожніх значеній¶

Ви можете передати опцію 'allowEmpty' всім вбудованим валідатор, щоб уникнути перевірки, яка буде виконана, якщо передано порожнє значення:

рекурсивна проверка¶

Ви також маєте право запускати екземпляри Validation всередині іншого за допомогою методу afterValidation (). У цьому прикладі перевірка примірника CompanyValidation також перевіряє екземпляр PhoneValidation: