ホームページ >バックエンド開発 >PHPチュートリアル >thinkPHPフォーム自動検証機能
昨夜、上司から自動フォーム検証機能の作成を依頼されました。私は長い間悩みましたが、それを思いつくまでに公式 Web サイトから多くの知識を学びました。とにかく、私自身の結果を共有しましょう。
thinkphp は、Model 基本クラスで自動検証関数と正規表現を定義します。必要なのは、対応するデータベース テーブルのモデル クラスの下に $_validate 属性を確立することだけです。
1. Model の基本クラスを見つけて、 protected $_validate = array(); // 以下の対応するデータ モデル ファイルで定義することを確認します。
2、リーリー
リーリー
3. 形式の説明: 配列 (検証フィールド、検証ルール、エラー プロンプト、検証条件、追加ルール、検証時間)、
検証フィールド: 検証する必要があるフォーム フィールドの名前。このフィールドは必ずしもデータベース フィールドである必要はありませんが、パスワードや検証コードの確認など、フォームの補助フィールドである場合もあります。
検証ルール: 検証のルールは追加のルールと組み合わせる必要があります (必須)。含まれる公式ルールは次のとおりです (自分で追加することもできます)。
リーリー
検証条件には 3 つのルールがあります:
Model::EXISTS_TO_VAILIDATE または 0、フィールドが存在するかどうかを確認します (デフォルト)
モデル: :MUST_TO_VALIDATE または 1 を検証する必要があります。
Model::VALUE_TO_VAILIDATE または 2 値が空でない場合に検証します。
追加ルール:
regex 通常の検証。前の検証ルールが正規表現であることを示します。
function 関数検証を使用します。前 その検証は関数名です。
callback はメソッド検証を使用し、検証ルールが Model クラスのメソッドであることを示します。
confirm はフォーム内の 2 つのフィールドが等しいかどうかを検証し、検証ルールはフィールド名です。等しい場合は、この値が特定の値に等しいかどうかを検証します。システムは、フィールドの現在の値に基づいてデータベースにクエリを実行し、同じ値が存在するかどうかを判断します。
同時に、システムには、このセクションで使用できるいくつかの一般的に使用される定期的な検証ルールも組み込まれています。必須フィールドは電子メール アドレスである必要があります。これらの検証ルールは直接使用できます。
検証時間:(オプション)
01.Model:: MODEL_INSERT または 1 (データ追加時に検証)
02.Model:: MODEL_UPDATE または 2 (データ編集時に検証)
03.Model:: MODEL_BOTH または 3 (すべての場合に検証) (デフォルト)
リーリー
上司の要件を満たすかどうかはわかりませんが、それでも可能です。 ! コード、ケース、快適さを一晩かけて探しました。 !