Home >PHP Framework >ThinkPHP >How to use ThinkPHP6 to implement ORM to automatically verify database operations

How to use ThinkPHP6 to implement ORM to automatically verify database operations

王林
王林Original
2023-06-20 21:12:241724browse

As the functionality of web applications continues to increase, developers often need to spend a lot of time writing database validation rules. Using the ORM (Object Relational Mapping) framework, database validation rules and business logic can be separated, saving time and improving development efficiency. Among them, ThinkPHP6 provides an automatic verification function, which can help us quickly implement ORM automatic verification database operations. Next, we will introduce how to use ThinkPHP6 to implement ORM automatic verification database operations.

  1. Install ThinkPHP6

First, we need to install ThinkPHP6. You can use Composer to install ThinkPHP6 through the following command:

composer create-project topthink/think tp6 --prefer-dist

Of course, you can also go to the official website of ThinkPHP6 (https://www.thinkphp.cn) Download the latest framework source code.

  1. Configuring the database connection

Before implementing ORM automatic verification, we need to configure the database connection first. It can be configured in config/database.php in the project root directory, for example:

return [
    // 数据库类型
    'type'            => 'mysql',
    // 数据库连接DSN配置
    'dsn'             => '',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'test',
    // 数据库用户名
    'username'        => 'root',
    // 数据库密码
    'password'        => 'password',
    // 数据库连接端口
    'hostport'        => '3306',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 是否自动写入时间戳字段
    'auto_timestamp'  => false,
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
    // 开启断线重连
    'break_reconnect' => true,
];
  1. Creating and using models

In ThinkPHP6 , use models to interact with the database. You can create a model through the following command:

php bin/think make:model Test

This command will be created in the app directory Test.php file, which contains an empty model class Test. We can specify database operation table names, primary key names, automatic timestamps and other definitions in this class. For example:

<?php
namespace appmodel;
use thinkModel;
class Test extends Model
{
    // 指定表名
    protected $table = 'test';
    // 指定主键名
    protected $pk = 'id';
    // 自动时间戳
    protected $autoWriteTimestamp = true;
}

In this model class, we can also define some data validation rules. For example:

<?php
namespace appmodel;
use thinkModel;
class Test extends Model
{
    // 指定表名
    protected $table = 'test';
    // 指定主键名
    protected $pk = 'id';
    // 自动时间戳
    protected $autoWriteTimestamp = true;

    // 定义验证规则
    protected $validate=[
        'name'=>'require|max:10',
        'age'=>'require|integer|between:1,100',
        'email'=>'email',
    ];
}

In this example, we define three validation rules: nameRequired, the maximum length is 10; ageRequired, must be an integer, take The value is between 1 and 100; email must be in email format. These rules will be automatically verified when operating on model data.

  1. Use the automatic verification function

When using the model for database operations, we only need to call the corresponding method, for example:

// 添加数据
$data = [
    'name' => '张三',
    'age'  => '18',
    'email'=> 'zhangsan@test.com',
];
$model = new Test;
$result = $model->save($data);
if ($result) {
    echo '数据添加成功';
} else {
    echo '数据添加失败';
}

// 更新数据
$data = [
    'id'   => 1,
    'name' => '李四',
    'age'  => '20',
    'email'=> 'lisi@test.com',
];
$model = new Test;
$result = $model->save($data, ['id' => 1]);
if ($result) {
    echo '数据更新成功';
} else {
    echo '数据更新失败';
}

// 删除数据
$model = new Test;
$result = $model->destroy(1);
if ($result) {
    echo '数据删除成功';
} else {
    echo '数据删除失败';
}

// 查询数据
$model = new Test;
$result = $model->where('id', 1)->find();
if ($result) {
    echo '数据查询成功';
} else {
    echo '数据查询失败';
}

In When using these methods, ThinkPHP6 automatically validates based on the validation rules defined in the model. If validation fails, an exception is thrown and the reason for the failure is returned.

  1. Custom validation message

In automatic validation, we can define the validation message when validation fails by adding a static attribute message in the model class. Error message. For example:

<?php
namespace appmodel;
use thinkModel;
class Test extends Model
{
    // 指定表名
    protected $table = 'test';
    // 指定主键名
    protected $pk = 'id';
    // 自动时间戳
    protected $autoWriteTimestamp = true;

    // 定义验证规则
    protected $validate=[
        'name'=>'require|max:10',
        'age'=>'require|integer|between:1,100',
        'email'=>'email',
    ];

    // 定义验证失败消息
    protected $message = [
        'name.require'  => '姓名不能为空',
        'name.max'      => '姓名长度不能超过10个字符',
        'age.require'   => '年龄不能为空',
        'age.integer'   => '年龄必须为整数',
        'age.between'   => '年龄取值必须在1到100之间',
        'email.email'   => ' email格式不正确 ',
    ];
}

In this example, we define the error message for verification failure. If data validation failure is detected, ThinkPHP6 will automatically return the corresponding error information according to the defined message.

Summary

By using the ThinkPHP6 automatic verification function, we can quickly implement ORM automatic verification of database operations, thereby improving development efficiency and reducing errors. Defining data validation rules and message prompts in the model class can help us develop and maintain more conveniently. I hope this article can help everyone and make everyone more comfortable when using ThinkPHP6.

The above is the detailed content of How to use ThinkPHP6 to implement ORM to automatically verify database operations. For more information, please follow other related articles on the PHP Chinese website!

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