Tip

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

フィールド検証

コレクションのデータの正確性、セキュリティ、一貫性を確保するため、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

検証トリガーのタイミングの違い

  • クライアントサイド検証:ユーザーがフィールドに入力する際にリアルタイムで検証がトリガーされ、すぐにエラーメッセージが表示されます。
  • サーバーサイドフィールド検証:データ送信後、データがデータベースに保存される前にサーバーサイドで検証が行われ、エラーメッセージは API レスポンスを通じて返されます。
  • 適用範囲:サーバーサイドフィールド検証は、フォーム送信時だけでなく、ワークフロー、データインポートなど、データの追加または変更を伴うすべてのシナリオでトリガーされます。
  • エラーメッセージ:クライアントサイド検証はカスタムエラーメッセージをサポートしていますが、サーバーサイド検証は現在カスタムエラーメッセージをサポートしていません。