ホームページ  >  記事  >  バックエンド開発  >  thinkPHP フォームの自動検証のパフォーマンス

thinkPHP フォームの自動検証のパフォーマンス

WBOY
WBOYオリジナル
2016-06-13 12:11:26814ブラウズ

thinkPHP フォームの自動検証関数

thinkphp は、Model 基本クラスで自動検証関数と正規表現を定義します。次のように、対応するデータベース テーブルのモデル クラスの下に $_validate 属性を確立するだけです。フォームデータの自動検証機能。これは非常に実用的で便利です!

1. Model の基本クラスを見つけます。 protected $_validate = array(); // 自動検証は配列型です。 , 以下の対応するデータ モデル ファイルで定義します。

2. public function CheckVerify($verify) {

if (md5($verify) != Session::get( 'verify ')) return false;
return true;
}

//自動検証
protected $_validate = array(
array("title", " require" , "タイトルは必須です!"),
array('categoryId', 'require', "カテゴリは必須です!"),
array('content', 'require', "コンテンツは必須です! "),
array('verify', 'require','検証コードが必要です!'),
array('verify', 'CheckVerify', '検証コードが間違っています!', 0, 'callback ')
);

3. 形式の説明: 配列 (検証フィールド、検証ルール、エラー プロンプト、検証条件、追加ルール、検証時間)、

4. パラメータの説明:

検証フィールド: 検証する必要があるフォーム フィールドの名前。このフィールドは必ずしもデータベース フィールドである必要はなく、確認などのフォームの補助フィールドである場合もあります。パスワードや認証コードなど
検証ルール: 検証のルールは追加のルールと組み合わせる必要があります (必須)。含まれる公式ルールは次のとおりです (自分で追加することもできます):

<span style="color: #008080;"> 1</span> <span style="color: #800080;">$validate</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">(</span><span style="color: #008080;"> 2</span> <span style="color: #008080;"> 3</span>             'require'=> '/.+/',<span style="color: #008080;"> 4</span> <span style="color: #008080;"> 5</span>             'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',<span style="color: #008080;"> 6</span> <span style="color: #008080;"> 7</span>             'url' => '/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^a8093152e673feb7aba1828c43532094\"\"])*$/',<span style="color: #008080;"> 8</span> <span style="color: #008080;"> 9</span>             'currency' => '/^\d+(\.\d+)?$/',<span style="color: #008080;">10</span> <span style="color: #008080;">11</span>             'number' => '/^\d+$/',<span style="color: #008080;">12</span> <span style="color: #008080;">13</span>             'zip' => '/^[1-9]\d{5}$/',<span style="color: #008080;">14</span> <span style="color: #008080;">15</span>             'integer' => '/^[-\+]?\d+$/',<span style="color: #008080;">16</span> <span style="color: #008080;">17</span>             'double' => '/^[-\+]?\d+(\.\d+)?$/',<span style="color: #008080;">18</span> <span style="color: #008080;">19</span>             'english' => '/^[A-Za-z]+$/',<span style="color: #008080;">20</span> <span style="color: #008080;">21</span>         );

ヒント情報: 検証失敗後のプロンプト情報の定義 (必須)、
検証条件: (オプション)
検証条件には 3 つのルールがあります:
Model::EXISTS_TO_VAILIDATE または 0、フィールドが存在します (デフォルト)
Model::MUST_TO_VALIDATE または 1 を検証する必要があります
Model::VALUE_TO_VAILIDATE または 2 値が空でない場合に検証します
追加ルール:
正規表現の定期検証。以前の検証が行われたことを示しますルールは正規表現です。
関数は関数検証を使用し、前の検証が関数名であることを示します。
コールバックはメソッド検証を使用し、検証ルールが Model クラスのメソッドであることを示します。フォーム内の 2 つのフィールドが等しいかどうか、検証ルールがフィールド名であるかどうかを検証します。
equal は、その値が前の検証ルールによって定義されているかどうかを検証します。
in は、その値が範囲内であるかどうかを検証します。特定の範囲の場合、前の定義は配列です。
Unique は、フィールドの現在の値に基づいてデータベースにクエリを実行し、同じ値が存在するかどうかを判断します。
同時に。システムには、このセクションで使用できるいくつかの一般的な検証ルールも組み込まれています。 require フィールドは、
通貨、数値である必要があります。これらの検証ルールは直接使用できます。
検証時間: (オプション)

01.Model:: MODEL_INSERT または 1 new データ追加時に検証

02.Model:: MODEL_UPDATE または 2 データ編集時に検証

03.Model: : MODEL_BOTH または 3 すべての場合に検証 (デフォルト)

5. 公式例:

protected $_validate  =  array(   array('verify','require','验证码必须!'), //默认情况下用正则进行验证   array(name,'','帐号名称已经存在!',0,&rsquo;unique&rsquo;,1), // 在新增的时候验证name字段是否唯一   array('value',array(1,2,3),'值的范围不正确!',2,&rsquo;in&rsquo;), // 当值不为空的时候判断是否在一个范围内   array('repassword','password','确认密码不正确',0,&rsquo;confirm&rsquo;), // 验证确认密码是否和密码一致   array('password','checkPwd','密码格式不正确',0,&rsquo;function&rsquo;)// 自定义函数验证密码格式  );
http://w2ks.com/

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。