フィールド検証

データテーブルの正確性、安全性、一貫性を確保するため、NocoBase ではフィールド検証機能を提供しています。この機能は主に、設定ルールと検証ルールの 2 つに分かれます。

設定ルール

20250819181342

NocoBase のシステムフィールドには Joi のルールが統合されており、以下をサポートしています。

文字列型

Joi の文字列型に対応する NocoBase のフィールドタイプには、単一行テキスト、複数行テキスト、電話番号、メールアドレス、URL、パスワード、UUID があります。

共通ルール

  • 最小長
  • 最大長
  • 長さ
  • 正規表現
  • 必須

メールアドレス

20250819192011 その他のオプションを見る

URL

20250819192409 その他のオプションを見る

UUID

20250819192731 その他のオプションを見る

数値型

Joi の数値型に対応する NocoBase のフィールドタイプには、整数、数値、パーセンテージがあります。

共通ルール

  • より大きい
  • より小さい
  • 最大値
  • 最小値
  • 整数倍

整数

共通ルールに加えて、整数フィールドでは整数検証安全でない整数の検証もサポートしています。 20250819193758

数値とパーセンテージ

共通ルールに加えて、数値フィールドとパーセンテージフィールドでは精度検証もサポートしています。 20250819193954

日付型

Joi の日付型に対応する NocoBase のフィールドタイプには、日時(タイムゾーンあり)、日時(タイムゾーンなし)、日付のみ、Unix タイムスタンプがあります。

サポートされている検証ルール:

  • より大きい
  • より小さい
  • 最大値
  • 最小値
  • タイムスタンプ形式の検証
  • 必須

リレーションフィールド

リレーションフィールドでは必須検証のみサポートしています。ただし、リレーションフィールドの必須検証は、現在のところサブフォームまたはサブテーブルのシナリオには適用できません。 20250819184344

検証ルールの適用

フィールドルールを設定すると、データの追加または変更時に対応する検証ルールが実行されます。 20250819201027

フィールドをフォームで使用する場合、フィールドの検証ルールはフィールドの検証設定にも表示されます。これらのルールは「サーバー側フィールド検証ルール」の下に表示され、ここでは読み取り専用です。これらのルールを変更する場合は、「データソース / データテーブル設定」に戻ってフィールドを編集してください。

「クライアント側検証ルール」では、現在のフォームフィールドに追加のルールを設定できます。これらのルールは現在のフィールドコンポーネントにのみ影響します。最終的に適用される検証ルールは、「サーバー側フィールド検証ルール」と「クライアント側検証ルール」を統合したものです。

検証ルールは、サブテーブルおよびサブフォームコンポーネントにも適用されます: 20250819202514

20250819202357

なお、サブフォームまたはサブテーブルのシナリオでは、リレーションフィールドの必須検証は現在のところ有効になりません。 20250819203016

サーバー側フィールド検証ルールとクライアント側検証ルールの違い

サーバー側フィールド検証ルールとクライアント側検証ルールは、設定場所が異なり、適用範囲も異なります。

設定方法の違い

  • サーバー側フィールド検証ルール:「データソース / データテーブル設定」でフィールドルールを設定します。これらはフィールドの基本ルールです
  • クライアント側検証ルール:フォームフィールドの設定で追加のルールを設定します。これらのルールは現在のフィールドコンポーネントにのみ影響します 20250819203836

20250819203845

検証が実行されるタイミングの違い

  • サーバー側フィールド検証ルール:フィールドをフォームで使用するとフロントエンド検証が実行され、データの書き込み前にも検証が実行されます。ワークフローやデータインポートなど、データを追加または変更するシナリオにもこれらのルールが適用されます
  • クライアント側検証ルール:現在のフォームフィールドでのみフロントエンド検証が実行されます
  • ルールの表示:サーバー側フィールド検証ルールは継承されたルールとして読み取り専用で表示されます。クライアント側検証ルールは個別に表示され、ここで編集できます
  • エラーメッセージ:クライアント側検証ルールではカスタムエラーメッセージを設定できますが、サーバー側フィールド検証ルールでは現在のところカスタムエラーメッセージを設定できません。