Home  >  Article  >  PHP Framework  >  Detailed explanation of automatic verification and verification rules in ThinkPHP

Detailed explanation of automatic verification and verification rules in ThinkPHP

angryTom
angryTomforward
2020-03-23 14:54:225861browse

This article introduces in detail the methods of automatic verification and verification rules in thinkphp. I hope it will be helpful to friends who are learning thinkphp!

Detailed explanation of automatic verification and verification rules in ThinkPHP

Detailed explanation of automatic verification and verification rules in ThinkPHP

ThinkPHP has built-in automatic verification function of data objects to complete the business rules of the model verify. Automatic validation is based on data objects, and in most cases data objects are created based on the $_POST form (not absolute).

Basic automatic verification functions include: required fields, email format, uniqueness, URL address, numbers, whether two fields are the same, whether they are equal to a certain value, etc.

To use the system's automatic verification function, you only need to define the $_validate attribute (an array composed of multiple verification factors) in the corresponding Model class. The syntax is as follows:

protected $_validate = array(
    array(验证字段,验证规则,错误提示[,验证条件][,附加规则][,验证时间])
};

(recommended tutorial : thinkphp tutorial)

ThinkPHP automatic verification format description:
Verification factor Description
Validation field Required. The name of the form field that needs to be verified. This field is not necessarily a database field, but can also be some auxiliary fields of the form, such as verification codes, etc.
Validation Rules Required. The rules to be verified need to be used in conjunction with additional rules.
Error message Required. Prompt message when verification fails.
Verification conditions Optional. Includes:
  1. Model::EXISTS_TO_VAILIDATE or 0: Validate if the field exists (default)
  2. Model::MUST_TO_VALIDATE or 1: Must verify
  3. Model::VALUE_TO_VAILIDATE or 2: Validate when the value is not empty
Additional rules Optional. Used in conjunction with verification rules, including:
  1. regex: Use regular expressions for verification, indicating that the previously defined verification rule is a regular expression (default)
  2. unique: Verify uniqueness, the system will verify based on the field The current value queries the database to determine whether the same value exists
  3. confirm: Verify whether the two fields in the form are the same. The verification rule defined earlier is a field name
  4. equal: Verify whether it is equal to A certain value, which is defined by the previous validation rule
  5. in: Verify whether it is within a certain range, the previously defined validation rule must be an array
  6. function: Use function verification, indicating The verification rule defined earlier is a function name
  7. callback: Use method verification. The verification rule defined earlier is a method of the current Model class
Verification time Optional. Includes:
  1. Model:: MODEL_INSERT or 1: Verify when adding data
  2. Model:: MODEL_UPDATE or 2: Verify when editing data
  3. Model:: MODEL_BOTH or 3: Validate in all cases (default)

Automatic validation example

The following example validates that the article title must Fill in and check whether the title already exists:

class ArticleModel extends Model{
    protected $_validate = array(
        array('title','require','标题不能为空!'),
        array('title','','标题已经存在!',0,'unique',1),
    };
}

In the operation, when using the create method to create a data object, the data verification operation will be automatically performed (when POST submits the form for processing):

$Article = D("Article");
if (!$Article->create()){
    // 如果创建失败,表示验证没有通过(注:可能原因之一)输出错误提示信息
    exit($Article->getError());
}else{
    // 验证通过,继续下一步流程如将数据写入数据表
}

System Some common regular verification rules are built-in, including: require (required), email (email format), url (URL address), currency (currency), number (number), qq (QQ number), english (English characters), Can be used directly.

For user experience reasons, the error message returned by $Article->getError() is generally returned in Ajax mode. For details, see "ThinkPHP Ajax".

Define your own verification rules

When the built-in verification rules cannot meet the verification requirements, you can define your own verification rules, such as requiring the birth date to be 2000- 1-1 format input:

array('birthday','/^d{4}-d{1,2}-d{1,2}$/','出生年月格式错误!'),

For more related tutorials, please pay attention to PHP Chinese website!

The above is the detailed content of Detailed explanation of automatic verification and verification rules in ThinkPHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete