昨夜、上司からフォーム自動検証機能に取り組むよう頼まれ、長い間悩みましたが、来る前に公式サイトでたくさんの知識を学びました。とにかく、私自身の結果を共有しましょう。
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 関数検証を使用します。前 その検証は関数名です。
コールバックはメソッド検証を使用し、検証ルールが Model クラスのメソッドであることを示します。
confirm はフォーム内の 2 つのフィールドが等しいかどうかを検証し、検証ルールはフィールド名です。等しい場合は、この値が特定の値に等しいかどうかを検証します。システムは、フィールドの現在の値に基づいてデータベースにクエリを実行し、同じ値が存在するかどうかを判断します。同時に、システムには、このセクションで使用できる、一般的に使用されるいくつかの定期的な検証ルールも組み込まれています。必須フィールドは電子メールである必要があります。これらの検証ルールは直接使用できます。
検証時間:(オプション)
01.Model:: MODEL_INSERT または 1 (データ追加時に検証)
02.Model:: MODEL_UPDATE または 2 (データ編集時に検証)
03.Model:: MODEL_BOTH または 3 (すべての場合に検証) (デフォルト)
5. 公式例:
上司の要件を満たすかどうかはわかりませんが、それでも可能です。 ! コード、ケース、快適さを一晩かけて探しました。 !
http://www.bkjia.com/PHPjc/930046.html