search
HomeBackend DevelopmentPHP TutorialThinkPHP framework project development topic--automatic verification

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.


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP Performance Tuning for High Traffic WebsitesPHP Performance Tuning for High Traffic WebsitesMay 14, 2025 am 12:13 AM

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

Dependency Injection in PHP: Code Examples for BeginnersDependency Injection in PHP: Code Examples for BeginnersMay 14, 2025 am 12:08 AM

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

PHP Performance: is it possible to optimize the application?PHP Performance: is it possible to optimize the application?May 14, 2025 am 12:04 AM

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

PHP Performance Optimization: The Ultimate GuidePHP Performance Optimization: The Ultimate GuideMay 14, 2025 am 12:02 AM

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

PHP Dependency Injection Container: A Quick StartPHP Dependency Injection Container: A Quick StartMay 13, 2025 am 12:11 AM

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Dependency Injection vs. Service Locator in PHPDependency Injection vs. Service Locator in PHPMay 13, 2025 am 12:10 AM

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHP performance optimization strategies.PHP performance optimization strategies.May 13, 2025 am 12:06 AM

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHP Email Validation: Ensuring Emails Are Sent CorrectlyPHP Email Validation: Ensuring Emails Are Sent CorrectlyMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.