テスト テーブルに登録されたフォームを確認します。
登録前にフォームを確認します。
ユーザー名が空でないことを 2 回確認します。パスワードは一貫している必要があり (同等性検証)、年齢は 18 ~ 50 歳である必要があり (範囲検証)、電子メール形式は定期的な検証である必要があります。
自動検証は、ThinkPHP モデル層によって提供されるデータ検証方法であり、create を使用してデータ オブジェクトを作成するときにデータ検証を自動的に実行できます。
データ検証では、データ型、ビジネスルール、セキュリティ判断などの検証操作を実行できます。
データ検証には 2 つの方法があります:
静的メソッド: モデル クラスの $_validate 属性を使用して検証ルールを定義します。
動的メソッド: モデル クラスの validate メソッドを使用して、自動検証ルールを動的に作成します。
どのような方法を使用する場合でも、検証ルールの定義は統一ルールであり、定義形式は次のとおりです。
array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ...... );
検証フィールド (必須)
検証する必要があるフォーム フィールドの名前。このフィールドは必ずしもデータベース フィールドである必要はありませんが、パスワードや確認コードの確認など、フォームの補助フィールドである場合もあります。 。フィールドに関係のない個別の入力規則がある場合、入力フィールドは任意に設定できます (たとえば、有効期限の規則はフォーム フィールドに関係ありません)。フィールド マッピングが定義されている場合、ここでの検証フィールド名はフォーム フィールドではなく実際のデータ テーブル フィールドである必要があります。
検証ルール (必須)
検証のルールは追加のルールと組み合わせる必要があります。定期的な検証に追加のルールを使用する場合、システムにはいくつかのルールも組み込まれています-in ルール: よく使用される通常の検証ルール (必須フィールド、電子メール アドレス、URL アドレス、通貨、数値など) を検証ルールとして直接使用できます。
プロンプト情報 (必須)
検証失敗後のプロンプト情報の定義に使用されます
検証条件 (オプション)
次の状況が含まれます:
self::EXISTS_VALIDATE または 0、フィールドが存在するかどうかを確認します (デフォルト)
self : :MUST_VALIDATE または 1 検証する必要があります
self::VALUE_VALIDATE または 2 値が空でない場合に検証します
追加ルール (オプション)
#次のルールを含む検証ルールとともに使用します: #検証時間 (オプション)
# #self::MODEL_BOTH または 3 すべてのケースで検証 (デフォルト)
ここでの検証時間に注意する必要があります。この 3 つのケースだけではありません。ビジネスに応じて検証できます。追加の検証時間を追加する必要があります。
モデルの自動検証ルールをモデル クラスで事前定義します (これを静的定義と呼びます)。検証する場合は、テスト テーブルのモデルに検証条件を追加します。新しい testModel.class.php を作成し、次のようにモデル クラスに $_validate 属性を定義します。検証ルールを定義します。これは、create メソッドを使用してデータ オブジェクトを作成するときに自動的に呼び出すことができます:
ログイン後にコピー
テンプレート ZhuCe.html:
assign("error",$cw); $this->display(); } else { $model = new \Home\Model\testModel(); //$model = D("test"); //动态验证可以用D方法 if(!$model->create()) { $e = $model->getError(); $url = "ZhuCe/cw/{$e}"; $this->error("注册失败!",$url,1); } else { $model->add(); }
ZhuCe メソッドをリクエストします:
2. 動的検証
動的検証を採用すると、同じモデルを運用する際に、状況に応じて異なる検証ルールを使用することができ、より柔軟になります。上記のようなさまざまなニーズ 静的検証方法は次のように変更できます。
また、フォームの背後に直接エラー メッセージを表示することもできますが、これには ajax の使用が必要です。例として、ユーザー名が空でないことを確認します。テンプレート ZhuCe.html 内:
display(); } else { //$model = new \Home\Model\testModel(); $model = D("test"); //动态验证可以用D方法 //动态验证 $rules = array( array('uid','require','用户名不能为空') ); //调用validate()加入验证规则 $r = $model->validate($rules)->create();//若验证失败返回false,成功返回注册的test表数组信息 //var_dump($r); if(!$r) { echo $model->getError(); //若验证失败则输出错误信息 } else { $model->add(); } } }
ZhuCe コントローラーに別の Yhm メソッドを作成します: