>  기사  >  PHP 프레임워크  >  ThinkPHP6을 사용하여 ORM을 구현하여 데이터베이스 작업을 자동으로 확인하는 방법

ThinkPHP6을 사용하여 ORM을 구현하여 데이터베이스 작업을 자동으로 확인하는 방법

王林
王林원래의
2023-06-20 21:12:241691검색

웹 애플리케이션의 기능이 계속해서 증가함에 따라 개발자는 데이터베이스 유효성 검사 규칙을 작성하는 데 많은 시간을 소비해야 하는 경우가 많습니다. ORM(Object Relational Mapping) 프레임워크를 사용하면 데이터베이스 유효성 검사 규칙과 비즈니스 로직을 분리하여 시간을 절약하고 개발 효율성을 높일 수 있습니다. 그중 ThinkPHP6은 자동 검증 기능을 제공하여 ORM 자동 검증 데이터베이스 작업을 신속하게 구현하는 데 도움을 줍니다. 다음으로 ThinkPHP6을 사용하여 ORM 자동 검증 데이터베이스 작업을 구현하는 방법을 소개하겠습니다.

  1. ThinkPHP6 설치

먼저 ThinkPHP6을 설치해야 합니다. Composer를 사용하여 다음 명령을 통해 ThinkPHP6을 설치할 수 있습니다:

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

当然,也可以到ThinkPHP6的官方网站(https://www.thinkphp.cn)下载最新的框架源代码。

  1. 配置数据库连接

在实现ORM自动验证之前,我们需要先配置数据库连接。可以在项目根目录下的config/database.php中进行配置,例如:

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. 创建和使用模型

在ThinkPHP6中,使用模型来与数据库进行交互。可以通过以下命令来创建一个模型:

php bin/think make:model Test

这条命令会在app目录下创建Test.php文件,其中包含了一个空的模型类Test。我们可以在这个类中指定数据库操作表名、主键名称、自动时间戳等定义。例如:

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

在这个模型类中,我们还可以定义一些数据验证规则。例如:

<?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',
    ];
}

在这个例子中,我们定义了三个验证规则:name必需、最大长度为10;age必需、必需为整数、取值为1到100之间;email必需为电子邮件格式。这些规则将在模型数据操作时自动进行验证。

  1. 使用自动验证功能

在使用模型进行数据库操作时,我们只需要调用对应的方法即可,例如:

// 添加数据
$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 '数据查询失败';
}

在使用这些方法时,ThinkPHP6会自动根据模型中定义的验证规则进行验证。如果验证失败,则会抛出异常并返回失败原因。

  1. 自定义验证消息

在自动验证中,我们可以通过在模型类中添加静态属性message

물론 ThinkPHP6 공식 웹사이트( https://www.thinkphp.cn)에서 최신 프레임워크 소스 코드를 다운로드하세요.

    데이터베이스 연결 구성

    ORM 자동 검증을 구현하기 전에 먼저 데이터베이스 연결을 구성해야 합니다. 프로젝트 루트 디렉터리의 config/database.php에서 구성할 수 있습니다. 예:

    <?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格式不正确 ',
        ];
    }
      🎜모델 생성 및 사용🎜🎜🎜ThinkPHP6에서는 모델을 사용하여 다음을 수행합니다. 데이터베이스와 상호 작용합니다. 다음 명령을 통해 모델을 생성할 수 있습니다: 🎜🎜php bin/think make:model Test🎜🎜이 명령은 app 디렉터리에 Test.php를 생성합니다. 파일에는 빈 모델 클래스 Test가 포함되어 있습니다. 이 클래스에서는 데이터베이스 작업 테이블 이름, 기본 키 이름, 자동 타임스탬프 및 기타 정의를 지정할 수 있습니다. 예: 🎜rrreee🎜이 모델 클래스에서는 일부 데이터 유효성 검사 규칙을 정의할 수도 있습니다. 예: 🎜rrreee🎜이 예에서는 세 가지 유효성 검사 규칙을 정의합니다. name은 필수이고, 최대 길이는 10이며, 정수여야 합니다. 값은 1에서 100 사이입니다. email은 이메일 형식이어야 합니다. 이러한 규칙은 모델 데이터에 대해 작업할 때 자동으로 확인됩니다. 🎜
        🎜자동 확인 기능을 사용하세요🎜🎜🎜모델을 사용하여 데이터베이스 작업을 수행할 때 해당 메서드만 호출하면 됩니다. 예: 🎜rrreee🎜이러한 메서드를 사용하면 ThinkPHP6은 자동으로 모델에 정의된 유효성 검사 규칙을 기준으로 확인합니다. 유효성 검사에 실패하면 예외가 발생하고 실패 이유가 반환됩니다. 🎜
          🎜사용자 정의 확인 메시지🎜🎜🎜자동 확인에서는 모델 클래스에 정적 속성 message를 추가하여 확인 실패 시 오류 메시지를 정의할 수 있습니다. 예: 🎜rrreee🎜 이 예에서는 확인 실패에 대한 오류 메시지를 정의합니다. 데이터 검증 실패가 감지되면 ThinkPHP6은 정의된 메시지에 따라 해당 오류 정보를 자동으로 반환합니다. 🎜🎜요약🎜🎜ThinkPHP6 자동 검증 기능을 사용하면 데이터베이스 운영에 대한 ORM 자동 검증을 빠르게 구현할 수 있어 개발 효율성이 향상되고 오류가 줄어듭니다. 모델 클래스에서 데이터 유효성 검사 규칙과 메시지 프롬프트를 정의하면 보다 편리하게 개발하고 유지 관리하는 데 도움이 될 수 있습니다. 이 기사가 ThinkPHP6를 사용하는 모든 사람에게 도움이 되고 모든 사람이 더 편안해질 수 있기를 바랍니다. 🎜

위 내용은 ThinkPHP6을 사용하여 ORM을 구현하여 데이터베이스 작업을 자동으로 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.