search
HomePHP FrameworkThinkPHPDetailed explanation of automatic verification and verification rules in ThinkPHP

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. If there is any infringement, please contact admin@php.cn delete
What Are the Key Features of ThinkPHP's Built-in Testing Framework?What Are the Key Features of ThinkPHP's Built-in Testing Framework?Mar 18, 2025 pm 05:01 PM

The article discusses ThinkPHP's built-in testing framework, highlighting its key features like unit and integration testing, and how it enhances application reliability through early bug detection and improved code quality.

How to Use ThinkPHP for Building Real-Time Stock Market Data Feeds?How to Use ThinkPHP for Building Real-Time Stock Market Data Feeds?Mar 18, 2025 pm 04:57 PM

Article discusses using ThinkPHP for real-time stock market data feeds, focusing on setup, data accuracy, optimization, and security measures.

What Are the Key Considerations for Using ThinkPHP in a Serverless Architecture?What Are the Key Considerations for Using ThinkPHP in a Serverless Architecture?Mar 18, 2025 pm 04:54 PM

The article discusses key considerations for using ThinkPHP in serverless architectures, focusing on performance optimization, stateless design, and security. It highlights benefits like cost efficiency and scalability, but also addresses challenges

How to Implement Service Discovery and Load Balancing in ThinkPHP Microservices?How to Implement Service Discovery and Load Balancing in ThinkPHP Microservices?Mar 18, 2025 pm 04:51 PM

The article discusses implementing service discovery and load balancing in ThinkPHP microservices, focusing on setup, best practices, integration methods, and recommended tools.[159 characters]

What Are the Advanced Features of ThinkPHP's Dependency Injection Container?What Are the Advanced Features of ThinkPHP's Dependency Injection Container?Mar 18, 2025 pm 04:50 PM

ThinkPHP's IoC container offers advanced features like lazy loading, contextual binding, and method injection for efficient dependency management in PHP apps.Character count: 159

How to Use ThinkPHP for Building Real-Time Collaboration Tools?How to Use ThinkPHP for Building Real-Time Collaboration Tools?Mar 18, 2025 pm 04:49 PM

The article discusses using ThinkPHP to build real-time collaboration tools, focusing on setup, WebSocket integration, and security best practices.

What Are the Key Benefits of Using ThinkPHP for Building SaaS Applications?What Are the Key Benefits of Using ThinkPHP for Building SaaS Applications?Mar 18, 2025 pm 04:46 PM

ThinkPHP benefits SaaS apps with its lightweight design, MVC architecture, and extensibility. It enhances scalability, speeds development, and improves security through various features.

How to Build a Distributed Task Queue System with ThinkPHP and RabbitMQ?How to Build a Distributed Task Queue System with ThinkPHP and RabbitMQ?Mar 18, 2025 pm 04:45 PM

The article outlines building a distributed task queue system using ThinkPHP and RabbitMQ, focusing on installation, configuration, task management, and scalability. Key issues include ensuring high availability, avoiding common pitfalls like imprope

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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software