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,’unique’,1), // 在新增的时候验证name字段是否唯一 array('value',array(1,2,3),'值的范围不正确!',2,’in’), // 当值不为空的时候判断是否在一个范围内 array('repassword','password','确认密码不正确',0,’confirm’), // 验证确认密码是否和密码一致 array('password','checkPwd','密码格式不正确',0,’function’)// 自定义函数验证密码格式 );http://w2ks.com/