このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
フィールド検証
コレクションのデータの正確性、セキュリティ、一貫性を確保するため、NocoBase はフィールド検証機能を提供しています。この機能は、主に「ルールの設定」と「検証ルールの適用」の2つの部分に分かれています。
ルールの設定

NocoBase のシステムフィールドは、Joi のルールを統合しており、以下の検証ルールをサポートしています。
文字列型
Joi の文字列型に対応する NocoBase のフィールドタイプは、単一行テキスト、複数行テキスト、電話番号、メールアドレス、URL、パスワード、UUID です。
共通ルール
- 最小長
- 最大長
- 長さ
- 正規表現
- 必須
メールアドレス
URL
UUID
数値型
Joi の数値型に対応する NocoBase のフィールドタイプは、整数、数値、パーセンテージです。
共通ルール
- より大きい
- より小さい
- 最大値
- 最小値
- 倍数
整数
共通ルールに加え、整数フィールドでは、さらに整数検証と安全でない整数検証をサポートしています。

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

日付型
Joi の日付型に対応する NocoBase のフィールドタイプは、日付(タイムゾーンあり)、日付(タイムゾーンなし)、日付のみ、Unix タイムスタンプです。
サポートされている検証ルール:
- より大きい
- より小さい
- 最大値
- 最小値
- タイムスタンプ形式検証
- 必須
関連フィールド
関連フィールドは必須検証のみをサポートしています。ただし、関連フィールドの必須検証は、サブフォームやサブテーブルのシナリオでは現在サポートされていませんのでご注意ください。

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

検証ルールは、サブテーブルやサブフォームコンポーネントにも適用されます。


ただし、サブフォームやサブテーブルのシナリオでは、関連フィールドの必須検証は現在有効になりませんのでご注意ください。

クライアントサイドフィールド検証との違い
クライアントサイドとサーバーサイドのフィールド検証は異なる利用シナリオに適用され、実装方法とルールがトリガーされるタイミングに大きな違いがあるため、それぞれ個別に管理する必要があります。
設定方法の違い
- クライアントサイド検証:編集フォームでルールを設定します(下図参照)
- サーバーサイドフィールド検証:データソース → コレクション設定でフィールドルールを設定します


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

