In the development of WEB projects, any module of the project will have the function of adding data - such as user registration, news addition, product management, etc. Then we will use forms to transmit data, and when adding data, whether it is the front-end user Even the backend administrator cannot avoid filling in invalid data or wrong data, so the verification of form data is indispensable in our projects. So if you have participated in or independently developed a WEB project, you will definitely find a lot of data verification when adding data - such as whether the user name exists, whether the verification code is correct, whether the password is filled in consistently, whether the age is a number, etc., then it will Problems such as the use of a large number of database searches and regular expression writing trouble everyone.
In ThinkPHP, the automatic verification and automatic completion functions of data objects are built-in to complete the business rule verification of the model. In most cases, the data objects are created by the $_POST data submitted by the form. If you need to use the system's automatic verification function, you only need to define the $_validate attribute in the Model class.
$_validate attribute validation factor format:
array (validation field, validation rules, error prompt, validation conditions, additional rules, validation time)
*Validation field: form field name, note: this field is not necessarily a database Fields can also be some auxiliary fields of the form - such as confirming passwords and verification codes, etc.
*Validation rules: Rules to be verified sometimes need to be combined with additional rules.
Built-in validation rules - including: require field, email address, url address, currency, number. These validation rules can be used directly. Note: If there are other verification rules, you need to write your own method
*Prompt message: Used for prompt messages after verification fails.
Verification conditions:
0 or Model::EXISTS_TO_VAILIDATE--validate if the field exists (default)
1 or Model::MUST_TO_VALIDATE--must be verified
2 or Model::VALUE_TO_VAILIDATE--when the value is not empty Verification
Additional rules: Use with verification rules
regex Use regular expressions for verification, indicating that the previously defined verification rule is a regular expression (default)
function Use function verification, the previously defined verification rule is a function name Note: System function or custom function
callback uses method verification. The previously defined verification rule is a method of the current Model class. Note: The custom method
confirm verifies whether the two fields in the form are the same. The previously defined verification rule is a Field name
equal Verifies whether it is equal to a certain value, which is defined by the previous verification rule
in Verifies whether it is within a certain range Note: the verification rule defined earlier must be an array
unique Verifies whether it is unique, the system will Query the database based on the current value of the field to determine whether the same value exists Note: The database will be requested
Verification time:
1 or Model:: MODEL_INSERT--verify when adding data
2 or Model:: MODEL_UPDATE--edit Validate data when
3 or Model:: MODEL_BOTH--verify in all cases (default)
After you are familiar with the $_validate attribute, you need to use examples to analyze how to write verification factors when validating certain data.
If you have studied ThinkPHP, you should have seen some examples of automatic verification in the manual. Here we will summarize most of the commonly used examples here for everyone to learn and use. If there are some students Commonly used but not mentioned here, everyone can brainstorm to improve all methods of automatic verification of data, which will be continuously updated.
Example:
protected $_validate = array(
array('username','require','Username is required!'), // Whether the data is empty Note: By default, all modifications will be verified
array(' username','','The username already exists! ',0,'unique',1), // Verify that the username field is unique when adding it
array('password','checkPwd','Password format Incorrect',0,'function'), // The password format can be customized using the chenkPwd method
array('repassword','password','Confirm the password is incorrect',0,'confirm'), // Verification Confirm whether the password is consistent with the password
array('sex','array(0,1,2)','gender must be 0,1,2',0,'in'), // Verify whether the data is in a Within the range
array('age','number','Age must be a number'), // Verify whether the data is a number
array('email','email','The email format is incorrect'), / / Built-in regular verification email
array('email','/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/ w+)*$/','Email format is incorrect), // Customized regular verification data
array('mypage','url','Personal URL format is incorrect'), // Built-in regular verification URL address
array('verify','****','Verification code is incorrect',0,'equal'), // Verify whether the data is equal to a certain value Note: **** can be a random verification code
array('salary','currency','Salary verification is incorrect','0'), // Built-in verification of currency data
);
ThinkPHP’s automatic verification function can meet almost any data verification needs, so when you use ThinkPHP to add and verify data in your project, you don’t have to worry about the troublesome issue of data verification by using the automatic verification and automatic completion functions. The auto-complete function will be explained and summarized next time, and ThinkPHP project module production and project examples will be released one after another. I hope you will support it.