Короткий довідник по валідації - рецепт yii 1

Як працює валідація

Клас CModel використовує метод [CModel :: rules ()] для завдання правил валідації.
Правила повертаються у вигляді масиву:

Наведений код - приклад того, як може бути реалізований метод [CModel :: rules ()].






Кожен з внутрішніх масивів визначає своє правило валідації.

вибір валідаторів

Yii шукає валідатор в певному порядку:

  1. Метод моделі з тим же ім'ям, що зазначено в масиві.
  2. Вбудований валідатор Yii, успадкований від CValidator.
  3. Шлях або псевдонім, який вказує на свій валідатор, успадкований від CValidator.

стандартні параметри

  • список полів моделі: поля моделі для валідації, розділені комами;
  • валідатор: визначає, який валідатор використовувати;
  • on: визначає сценарій, для якого проводиться валідація. При вказівці декількох
    сценаріїв, вони розділяються комами. Якщо параметр не заданий, правило застосовується для всіх
    сценаріїв;
  • except: визначає сценарій, при якому вказане правило валідації ігнорується. При вказівці декількох
    сценаріїв, вони розділяються комами.
  • message: повідомлення, видатне при помилку валідації;
  • ... параметри валідації ...: один або кілька додаткових параметрів, що передаються вказаною валідатора.

Стандартні правила валідації

boolean. CBooleanValidator. перевірять, що значення змінної дорівнює trueValue або falseValue.

  • allowEmpty, чи може значення дорівнювати null або бути порожнім.
  • falseValue, значення falseValue.
  • strict, чи є порівняння суворим: повинні збігатися не тільки значення, але і їх тип.
  • trueValue, значення trueValue.
  • captcha. CCaptchaValidator. перевіряє, що значення поля моделі відповідає перевірочного
    коду CAPTCHA.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • captchaAction, ID дії, що показує зображення CAPTCHA.
    • caseSensitive, чи використовувати чутливі до регістру перевірку.
  • compare. CCompareValidator. порівнює значення зазначеного поля моделі з значенням іншого
    поля і перевіряє, чи рівні вони.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • compareAttribute, ім'я атрибута, з яким буде проводиться порівняння.
    • compareValue, постійне значення, з яким буде проводиться порівняння.
    • operator, оператор, який використовується при порівнянні.
    • strict, чи є порівняння суворим: повинні збігатися не тільки значення, але і їх тип.
  • default. CDefaultValueValidator. инициализирует атрибути вказаним значенням.
    Валідацію при цьому не виконує. Потрібен для вказівки значень за замовчуванням.

    • setOnEmpty, встановлювати значення за замовчуванням тільки якщо значення дорівнює null або порожній рядку.
    • value, значення за замовчуванням.
  • date. CDateValidator. перевіряє, що значення є датою, часом або
    і тим і іншим разом.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • format, формат значення. Може бути масивом або рядком. За замовчуванням дорівнює
      'MM / dd / yyyy'. Решта формати описані в API CDateTimeParser.
    • timestampAttribute, ім'я атрибута, в який буде записаний результат розбору дати.
      За замовчуванням дорівнює null.






  • exist. CExistValidator. перевіряє, чи є значення атрибута в певній таблиці.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • attributeName, ім'я атрибута класу ActiveRecord, що використовується для перевірки значення.
    • className, ім'я класу ActiveRecord, використовуваного для перевірки.
    • criteria, додатковий критерій запиту.
  • file. CFileValidator. перевіряє, чи був завантажений файл.

    • allowEmpty, чи можна не завантажувати файл і залишити поле порожнім.
    • maxFiles, максимальна кількість файлів.
    • maxSize, максимальний розмір в байтах.
    • minSize, мінімальний розмір в байтах.
    • tooLarge, повідомлення про помилку, що видається якщо файл занадто великий.
    • tooMany, повідомлення, що видається якщо завантажено надто багато файлів.
    • tooSmall, повідомлення, що видається якщо долучення занадто малий.
    • types, список розширень файлів, які дозволено завантажувати.
    • wrongType, повідомлення, що видається якщо даний тип файлу завантажувати не можна.
    • mimeTypes, список MIME-типів файлів, які дозволено завантажувати. Можна використовувати за умови, що
      встановлено PECL-розширення fileinfo. З'явилося в версії 1.1.11.
    • wrongMimeType, повідомлення, що видається якщо даний тип файлу завантажувати не можна. Можна використовувати за умови,
      що встановлено PECL-розширення fileinfo. З'явилося в версії 1.1.11.
  • filter. CFilterValidator. застосовує до даних фільтр.

    in. CRangeValidator. перевіряє, чи входить значення в заданий інтервал або список значень.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • range, список допустимих значень або допустимий інтервал.
    • strict, чи є порівняння суворим: повинні збігатися не тільки значення, але і їх тип.
    • not, дозволяє перевірити виключення з інтервалу замість входження в нього.
  • length. CStringValidator. перевіряє, що кількість введених символів відповідає деякому значенню.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • encoding, кодування перевіряється рядки.
    • is, точна кількість символів.
    • max, максимальна кількість символів.
    • min, мінімальна кількість символів.
    • tooShort, повідомлення про помилку, що видається якщо кількість символів занадто мало.
    • tooLong, повідомлення про помилку, що видається якщо кількість символів занадто велике.
  • numerical. CNumberValidator. перевіряє, що її параметром є число в певному інтервалі.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • integerOnly, тільки цілі числа.
    • max, максимальне значення.
    • min, мінімальне значення.
    • tooBig, повідомлення про помилку, що видається якщо значення занадто велике.
    • tooSmall, повідомлення про помилку, що видається якщо значення занадто мало.
    • integerPattern, регулярний вираз, що використовується для валідації цілих чисел. Використовується тоді, коли
      integerOnly одно true. З'явилося в версії 1.1.7.
    • numberPattern, регулярний вираз, що використовується для валідації чисел з плаваючою точкою. Використовується тоді, коли
      integerOnly одно false. З'явилося в версії 1.1.7.
  • match. CRegularExpressionValidator. перевіряє, чи збігається значення формальному виразу.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • pattern, регулярний вираз.
    • not, інвертувати чи логіку валідації. Якщо значення дорівнює true, то перевіряється значення не повинно збігатися
      з регулярним виразом. Значення за замовчуванням: false. З'явилося в версії 1.1.5.
  • required. CRequiredValidator. перевіряє, що значення не дорівнює null і не є порожнім.

    • requiredValue, значення, яке повинен мати атрибут.
    • strict, чи є порівняння суворим: повинні збігатися не тільки значення, але і їх тип.
  • safe. CSafeValidator. позначає атрибут безпечним для масового привласнення.

    type. CTypeValidator. звіряє тип атрибута з зазначеним (integer. float. string. date. time. datetime).
    Для валідації дат з версії 1.1.7 краще використовувати CDateValidator.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • dateFormat, формат для валідації дат.
    • datetimeFormat, формат для валідації дати і часу.
    • timeFormat, формат для валідації часу.
    • type, тип даних.
  • unique. CUniqueValidator. перевіряє значення на унікальність.

    • allowEmpty, чи може значення дорівнювати null або бути порожнім.
    • attributeName, ім'я атрибута класу ActiveRecord, що використовується для перевірки значення.
    • caseSensitive, чи є порівняння регістронезавісімого.
    • className, ім'я класу ActiveRecord, використовуваного для перевірки.
    • criteria, додатковий критерій запиту.
  • unsafe. CUnsafeValidator. позначає атрибут небезпечним для масового привласнення.

    url. CUrlValidator. перевіряє, що значення є вірним URL http або https.

    Це варто вивчити

  • Встановлення та налаштування