この記事では、thinkphp の自動検証の方法と検証ルールを詳しく紹介しますので、thinkphp を学習している友人の参考になれば幸いです。
ThinkPHP の自動検証と検証ルールの詳細説明
ThinkPHP には、データ オブジェクトの自動検証機能が組み込まれており、完了することができます。モデルのビジネス ルールが検証されます。自動検証はデータ オブジェクトに基づいており、ほとんどの場合、データ オブジェクトは $_POST フォーム (絶対的なものではありません) に基づいて作成されます。
基本的な自動検証機能には、必須フィールド、電子メール形式、一意性、URL アドレス、数値、2 つのフィールドが同じかどうか、特定の値に等しいかどうかなどが含まれます。
システムの自動検証機能を使用するには、対応する Model クラスに $_validate 属性 (複数の検証要素で構成される配列) を定義するだけです。構文は次のとおりです:
protected $_validate = array( array(验证字段,验证规则,错误提示[,验证条件][,附加规则][,验证时间]) };
(推奨チュートリアル:thinkphp チュートリアル)
検証要素 | 説明 |
---|---|
検証フィールド | 必須。検証する必要があるフォーム フィールドの名前。このフィールドは必ずしもデータベース フィールドである必要はなく、検証コードなどのフォームの補助フィールドである場合もあります。 |
検証ルール | 必須。検証するルールは、追加のルールと組み合わせて使用する必要があります。 |
必須。検証が失敗した場合のプロンプトメッセージ。 | |
オプション。含まれるもの: | Model::EXISTS_TO_VAILIDATE または 0: フィールドが存在するかどうかを検証します (デフォルト)
|
オプション。次のような検証ルールと組み合わせて使用します。 | regex: 検証に正規表現を使用し、以前に定義された検証ルールが正規表現 (デフォルト) であることを示します。
|
Model:: MODEL_INSERT または 1: データ追加時に検証 | Model:: MODEL_UPDATE または 2: データ編集時に検証
|
次の例では、記事のタイトルがタイトルが既に存在するかどうかを入力して確認する必要があります: class ArticleModel extends Model{
protected $_validate = array(
array('title','require','标题不能为空!'),
array('title','','标题已经存在!',0,'unique',1),
};
}
$Article = D("Article"); if (!$Article->create()){ // 如果创建失败,表示验证没有通过(注:可能原因之一)输出错误提示信息 exit($Article->getError()); }else{ // 验证通过,继续下一步流程如将数据写入数据表 }
System 次のような一般的な定期検証ルールが組み込まれています: require (必須)、email (電子メール形式)、url (URL アドレス)、currency (通貨)、number (数値)、qq ( QQナンバー)、英語(英字)、そのまま使用可能です。
ユーザー エクスペリエンス上の理由から、$Article->getError() によって返されるエラー メッセージは通常、Ajax モードで返されます。詳細については、「ThinkPHP Ajax」を参照してください。
独自の検証ルールを定義する組み込みの検証ルールが検証要件を満たせない場合は、生年月日を要求するなど、独自の検証ルールを定義できます。 2000- 1-1 形式の入力: に注目してください。 以上がThinkPHP の自動検証と検証ルールの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。array('birthday','/^d{4}-d{1,2}-d{1,2}$/','出生年月格式错误!'),