thinkPHP は自動フォーム検証を実装し、thinkPHP はフォームを実装します
昨夜、上司から自動フォーム検証機能の作成を依頼されました。私は長い間悩みましたが、それを思いつくまでに公式 Web サイトから多くの知識を学びました。とにかく、私自身の結果を共有しましょう。
thinkphp は、Model 基本クラスで自動検証関数と正規表現を定義します。必要なのは、対応するデータベース テーブルのモデル クラスの下に $_validate 属性を確立することだけです。
1. Model の基本クラスを見つけて、 protected $_validate = array(); // 以下の対応するデータ モデル ファイルで定義することを確認します。
2、
コードをコピーします コードは次のとおりです:
パブリック関数 CheckVerify($verify) {
if (md5($verify) != Session::get('verify')) return false;
true を返します;
}
//自動検証
コードをコピーします コードは次のとおりです:
protected $_validate = array(
array("title", "require", "タイトルは必須です!"),
array('categoryId', 'require', "カテゴリは必須です!"),
array('content', 'require', "コンテンツは必須です!"),
array('verify', 'require','検証コードが必要です!'),
array('verify', 'CheckVerify', '検証コードエラー!', 0, 'callback')
);
3. 形式の説明: 配列 (検証フィールド、検証ルール、エラー プロンプト、検証条件、追加ルール、検証時間)、
4.パラメータの説明:
検証フィールド: 検証する必要があるフォーム フィールドの名前。このフィールドは必ずしもデータベース フィールドである必要はありませんが、パスワードや検証コードの確認など、フォームの補助フィールドである場合もあります。
検証ルール: 検証のルールは追加のルールと組み合わせる必要があります (必須)。含まれる公式ルールは次のとおりです (自分で追加することもできます)。
コードをコピーします コードは次のとおりです:
$validate = 配列(
'require'=> '/.+/',
'メール' => '/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/',
'url' => '/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+! ]*([^
'通貨' => '/^d+(.d+)?$/',
'数値' => '/^d+$/',
'zip' => '/^[1-9]d{5}$/',
'整数' => '/^[-+]?d+$/',
'double' => '/^[-+]?d+(.d+)?$/',
'english' => '/^[A-Za-z]+$/',
);
プロンプト メッセージ: 検証失敗後のプロンプト メッセージを定義するために使用されます (必須)、
検証条件: (オプション)
条件を検証するには 3 つのルールがあります:
Model::EXISTS_TO_VAILIDATE または 0、フィールドが存在するかどうかを確認します (デフォルト)
Model::MUST_TO_VALIDATE または 1 を検証する必要があります
Model::VALUE_TO_VAILIDATE または 2 値が空でない場合に検証します
追加ルール:
regex 通常の検証。前の検証ルールが正規表現であることを示します。
function は関数検証を使用し、前の検証が関数名であることを示します
;
コールバックはメソッド検証を使用し、検証ルールが Model クラスのメソッドであることを示します。
confirm は、フォーム内の 2 つのフィールドが等しいかどうかを検証します。検証ルールはフィールド名です。
等しいは、この値が前の検証ルールによって定義されているかどうかを検証します。
in は、前の定義が配列であるかどうかを検証します。
unique は、フィールドの現在の値に基づいてデータベースにクエリを実行し、同じ値が存在するかどうかを確認します。
同時に、システムには、このセクションで使用できる、一般的に使用されるいくつかの定期的な検証ルールも組み込まれています。次のものが含まれます。
通貨、数値、これらの検証ルールは直接使用できます
検証時間:(オプション)
01.Model:: MODEL_INSERT または新しいデータを追加するときに検証します
02.Model::MODEL_UPDATE または 2 データ編集時に検証します
03.Model:: MODEL_BOTH または 3 すべての場合に検証します (デフォルト)
5. 公式例:
コードをコピーします
コードは次のとおりです:
protected $_validate = array(
array('verify','require','検証コードが必要です!'), //デフォルトでは、検証に正規表現が使用されます
array(name,'','アカウント名はすでに存在します!',0,'unique',1), // 追加時に名前フィールドが一意であるかどうかを確認します
array('value',array(1,2,3),'値の範囲が正しくありません!',2,'in'), // 値が空でない場合に、値が範囲内にあるかどうかを判断します
array('repassword','password','パスワードが間違っていることを確認します',0,'confirm'), // 確認パスワードがパスワードと一致するかどうかを確認します
array('password','checkPwd','パスワード形式が正しくありません',0,'function')// パスワード形式を検証するカスタム関数
);
上司の要件を満たすかどうかはわかりませんが、それでも可能です。 !コード、ケース、快適さを一晩かけて探しました。 !
http://www.bkjia.com/PHPjc/932491.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/932491.html技術記事 thinkPHP はフォームの自動検証を実装します。昨夜、上司からフォームの自動検証機能を作ってほしいと頼まれました。私はそれを思いつくまでに長い間悩み、公式 Web サイトから多くの知識を学びました。 、合計...