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

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

Jun 20, 2023 pm 09:12 PM
thinkphp orm 자동 검증

웹 애플리케이션의 기능이 계속해서 증가함에 따라 개발자는 데이터베이스 유효성 검사 규칙을 작성하는 데 많은 시간을 소비해야 하는 경우가 많습니다. 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으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

thinkphp 프로젝트를 실행하는 방법 thinkphp 프로젝트를 실행하는 방법 Apr 09, 2024 pm 05:33 PM

ThinkPHP 프로젝트를 실행하려면 다음이 필요합니다: Composer를 설치하고, 프로젝트 디렉터리를 입력하고 php bin/console을 실행하고, 시작 페이지를 보려면 http://localhost:8000을 방문하세요.

thinkphp에는 여러 버전이 있습니다. thinkphp에는 여러 버전이 있습니다. Apr 09, 2024 pm 06:09 PM

ThinkPHP에는 다양한 PHP 버전용으로 설계된 여러 버전이 있습니다. 메이저 버전에는 3.2, 5.0, 5.1, 6.0이 포함되며, 마이너 버전은 버그를 수정하고 새로운 기능을 제공하는 데 사용됩니다. 최신 안정 버전은 ThinkPHP 6.0.16입니다. 버전을 선택할 때 PHP 버전, 기능 요구 사항 및 커뮤니티 지원을 고려하십시오. 최상의 성능과 지원을 위해서는 최신 안정 버전을 사용하는 것이 좋습니다.

thinkphp를 실행하는 방법 thinkphp를 실행하는 방법 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework를 로컬에서 실행하는 단계: ThinkPHP Framework를 로컬 디렉터리에 다운로드하고 압축을 풉니다. ThinkPHP 루트 디렉터리를 가리키는 가상 호스트(선택 사항)를 만듭니다. 데이터베이스 연결 매개변수를 구성합니다. 웹 서버를 시작합니다. ThinkPHP 애플리케이션을 초기화합니다. ThinkPHP 애플리케이션 URL에 접속하여 실행하세요.

PHP에서 ORM(객체 관계형 매핑)을 사용하여 데이터베이스 작업을 단순화하는 방법은 무엇입니까? PHP에서 ORM(객체 관계형 매핑)을 사용하여 데이터베이스 작업을 단순화하는 방법은 무엇입니까? May 07, 2024 am 08:39 AM

PHP의 데이터베이스 작업은 객체를 관계형 데이터베이스에 매핑하는 ORM을 사용하여 단순화됩니다. Laravel의 EloquentORM을 사용하면 객체 지향 구문을 사용하여 데이터베이스와 상호 작용할 수 있습니다. 모델 클래스를 정의하거나 Eloquent 메소드를 사용하거나 실제로 블로그 시스템을 구축하여 ORM을 사용할 수 있습니다.

laravel과 thinkphp 중 어느 것이 더 낫나요? laravel과 thinkphp 중 어느 것이 더 낫나요? Apr 09, 2024 pm 03:18 PM

Laravel과 ThinkPHP 프레임워크의 성능 비교: ThinkPHP는 일반적으로 최적화 및 캐싱에 중점을 두고 Laravel보다 성능이 좋습니다. Laravel은 잘 작동하지만 복잡한 애플리케이션의 경우 ThinkPHP가 더 적합할 수 있습니다.

thinkphp를 설치하는 방법 thinkphp를 설치하는 방법 Apr 09, 2024 pm 05:42 PM

ThinkPHP 설치 단계: PHP, Composer 및 MySQL 환경을 준비합니다. Composer를 사용하여 프로젝트를 만듭니다. ThinkPHP 프레임워크와 종속성을 설치합니다. 데이터베이스 연결을 구성합니다. 애플리케이션 코드를 생성합니다. 애플리케이션을 실행하고 http://localhost:8000을 방문하세요.

Hibernate는 어떻게 다형성 매핑을 구현합니까? Hibernate는 어떻게 다형성 매핑을 구현합니까? Apr 17, 2024 pm 12:09 PM

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

thinkphp 성능은 어떤가요? thinkphp 성능은 어떤가요? Apr 09, 2024 pm 05:24 PM

ThinkPHP는 캐싱 메커니즘, 코드 최적화, 병렬 처리 및 데이터베이스 최적화와 같은 장점을 갖춘 고성능 PHP 프레임워크입니다. 공식 성능 테스트에 따르면 초당 10,000개 이상의 요청을 처리할 수 있으며 JD.com, Ctrip과 같은 대규모 웹 사이트 및 엔터프라이즈 시스템에서 실제 응용 프로그램으로 널리 사용됩니다.

See all articles