Валидация полей

Чтобы обеспечить точность, безопасность и согласованность данных, NocoBase предоставляет функцию валидации полей. Она в основном состоит из двух частей: правил конфигурации и правил валидации.

Правила конфигурации

20250819181342

Системные поля NocoBase используют правила, интегрированные с Joi. Поддерживаются следующие возможности:

Строковый тип

Типы полей NocoBase, соответствующие строковому типу Joi: однострочный текст, многострочный текст, номер телефона, электронная почта, URL, пароль и UUID.

Общие правила

  • Минимальная длина
  • Максимальная длина
  • Длина
  • Регулярное выражение
  • Обязательное поле

Электронная почта

20250819192011 Подробнее о параметрах

URL

20250819192409 Подробнее о параметрах

UUID

20250819192731 Подробнее о параметрах

Числовой тип

Типы полей NocoBase, соответствующие числовому типу Joi: целое число, число и процент.

Общие правила

  • Больше чем
  • Меньше чем
  • Максимальное значение
  • Минимальное значение
  • Кратность целого числа

Целое число

Помимо общих правил, поля целых чисел дополнительно поддерживают проверку на целое число и проверку на небезопасное целое число. 20250819193758

Число и процент

Помимо общих правил, поля чисел и процентов дополнительно поддерживают проверку точности. 20250819193954

Тип даты

Типы полей NocoBase, соответствующие типу даты Joi: дата (с часовым поясом), дата (без часового пояса), только дата и временная метка Unix.

Поддерживаемые правила валидации:

  • Больше чем
  • Меньше чем
  • Максимальное значение
  • Минимальное значение
  • Проверка формата временной метки
  • Обязательное поле

Поля связей

Для полей связей поддерживается только проверка обязательности. Обратите внимание, что проверка обязательности полей связей пока не поддерживается в сценариях с дочерними формами или дочерними таблицами. 20250819184344

Применение правил валидации

После настройки правил для поля соответствующие правила валидации будут срабатывать при добавлении или изменении данных. 20250819201027

Когда поле используется в форме, правила валидации поля также отображаются в настройках валидации поля. Эти правила находятся в разделе «Правила валидации полей на сервере» и доступны здесь только для чтения. Чтобы изменить эти правила, вернитесь в раздел «Конфигурация источника данных / таблицы данных» и отредактируйте поле.

В разделе «Правила валидации на клиенте» по-прежнему можно добавить дополнительные правила для поля текущей формы. Эти правила влияют только на компонент текущего поля. В итоге применяемые правила валидации объединяют «Правила валидации полей на сервере» и «Правила валидации на клиенте».

Правила валидации также применяются к компонентам дочерних таблиц и дочерних форм: 20250819202514

20250819202357

Обратите внимание, что в сценариях с дочерними формами или дочерними таблицами проверка обязательности полей связей пока не действует. 20250819203016

Различия между правилами валидации полей на сервере и правилами валидации на клиенте

Правила валидации полей на сервере и правила валидации на клиенте настраиваются в разных местах и имеют разную область действия.

Различия в способах настройки

  • Правила валидации полей на сервере: правила для полей настраиваются в разделе «Конфигурация источника данных / таблицы данных». Эти правила являются базовыми правилами поля
  • Правила валидации на клиенте: дополнительные правила добавляются в настройках поля формы. Эти правила влияют только на компонент текущего поля 20250819203836

20250819203845

Различия во времени срабатывания валидации

  • Правила валидации полей на сервере: когда поле используется в форме, запускается валидация на клиенте, а перед записью данных также выполняется проверка. Эти правила применяются и в сценариях добавления или изменения данных через рабочие процессы, импорт данных и другие операции
  • Правила валидации на клиенте: проверка на клиенте запускается только для поля текущей формы
  • Отображение правил: правила валидации полей на сервере отображаются только для чтения как унаследованные правила. Правила валидации на клиенте отображаются отдельно и могут редактироваться здесь
  • Сообщения об ошибках: правила валидации на клиенте поддерживают пользовательские сообщения об ошибках, а правила валидации полей на сервере пока не поддерживают пользовательские сообщения об ошибках