>PHP 프레임워크 >ThinkPHP >ThinkPHP6에서 데이터베이스 작업에 ORM을 사용하는 방법은 무엇입니까?

ThinkPHP6에서 데이터베이스 작업에 ORM을 사용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-06-12 12:16:501021검색

PHP의 개발로 인해 점점 더 많은 웹 애플리케이션에서 데이터베이스에 액세스하고 운영해야 합니다. ORM(Object-Relational Mapping)은 객체 지향 방식으로 데이터베이스를 관리하고 유지 관리, 확장 가능 및 이식 가능한 솔루션을 제공하는 널리 사용되는 데이터베이스 운영 방법입니다. ThinkPHP6은 인기 있는 PHP 프레임워크 중 하나이며 ORM을 사용하는 다양한 방법을 제공하며 매우 간단하고 이해하기 쉽습니다. 이 기사에서는 ThinkPHP6에서 데이터베이스 작업에 ORM을 사용하는 방법을 소개합니다.

Step1. 데이터베이스 연결
ORM을 사용하여 데이터베이스를 운영하기 전에 먼저 데이터베이스 연결 정보를 구성해야 합니다. ThinkPHP6에서는 config/database.php에서 구성할 수 있습니다. 특정 구성 정보에는 데이터베이스 유형, 데이터베이스 주소, 포트, 데이터베이스 이름, 사용자 이름 및 비밀번호 등이 포함됩니다. 예를 들어 MySQL 데이터베이스 구성은 다음과 같습니다.

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

Step2.모델 정의
ORM을 사용하여 데이터베이스를 운영할 경우 해당 모델을 정의하여 데이터베이스 테이블을 관리해야 합니다. ThinkPHP6에서는 명령줄 도구를 사용하여 모델 파일을 자동으로 생성하거나 모델 파일을 수동으로 생성할 수 있습니다. 다음은 수동으로 생성된 모델 파일의 예입니다.

<?php
namespace appmodel;

use thinkModel;

class User extends Model
{
    protected $table = 'user';

    protected $pk = 'id';

    protected $autoWriteTimestamp = true;

    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';

    protected $dateFormat = 'Y-m-d H:i:s';

    protected $type = [
        'id'            => 'integer',
        'create_time'   => 'datetime',
        'update_time'   => 'datetime',
        'status'        => 'boolean',
    ];
}

위 코드에서는 User라는 모델을 정의하고, 해당 데이터베이스 테이블 이름은 'user', 기본 키 필드는 'id'입니다. 동시에 자동 타임스탬프 및 시간 형식과 같은 속성을 정의합니다. 모델에서는 모델 관계를 정의하는 방법 등과 같은 다른 속성과 방법을 정의할 수 있습니다. 이러한 속성과 메서드의 사용법은 이후 단계에서 자세히 설명됩니다.

3단계. 데이터 쿼리
ORM을 사용하여 데이터를 쿼리할 때 다양한 방법을 사용하여 다양한 요구 사항을 충족할 수 있습니다. 일반적으로 사용되는 ORM 쿼리 방법은 다음과 같습니다.

  1. 테이블 방법

    $result =     hinkacadeDb::table('user')->where('id', $id)->find();

    테이블 방법을 사용하면 데이터베이스 테이블을 직접 조작할 수 있으며, where, order,limit 등의 체인 호출 방법을 사용할 수 있습니다.

  2. find 및 select 메서드

    $user = User::find($id);
    $users = User::where('status', 1)->select();

    find 메서드는 지정된 기본 키 값을 가진 레코드를 찾을 수 있고, select 메서드는 조건을 충족하는 여러 레코드를 쿼리할 수 있습니다.

  3. 값 방법

    $username = User::where('id', $id)->value('username');

    값 방법을 사용하여 지정된 필드의 값을 쿼리합니다.

  4. count 메서드

    $count = User::count();

    count 메서드를 사용하여 조건에 맞는 레코드의 개수를 쿼리합니다.

  5. 또는 쿼리

    $user = User::where('username', $username)->whereOr('email', $email)->find();

    또는 명령문은 whereOr 메소드를 사용하여 구현할 수 있습니다.

  6. 페이지 쿼리

    $users = User::where('status', 1)->paginate(10);

    페이지 매김 방법을 사용하여 페이징 쿼리를 구현하고 각 페이지에 표시되는 레코드 수를 맞춤설정하세요.

데이터 업데이트
ORM을 사용하여 데이터베이스 레코드를 업데이트할 때 업데이트 방법을 사용할 수 있습니다. 예를 들어, 다음은 레코드 업데이트의 예입니다.

$user = User::find($id);
$user->username = 'new_username';
$user->save();

find 메소드를 통해 지정된 기본 키 값을 가진 레코드를 찾을 수 있습니다. 그런 다음 개체의 속성을 수정할 수 있습니다. 마지막으로 save 메소드를 호출하여 수정된 레코드를 데이터베이스에 저장합니다.

5단계. 데이터 삭제
ORM을 사용하여 데이터베이스 레코드를 삭제할 때 삭제 방법을 사용할 수 있습니다. 예를 들어, 다음은 레코드 삭제의 예입니다.

$user = User::find($id);
$user->delete();

find 메소드를 통해 지정된 기본 키 값을 가진 레코드를 찾을 수 있습니다. 그런 다음 삭제 메소드를 호출하여 데이터베이스에서 레코드를 삭제합니다.

요약
이 글에서는 ThinkPHP6에서 데이터베이스 작업을 위해 ORM을 사용하는 기본 단계를 소개합니다. 먼저 데이터베이스 연결 정보를 구성해야 합니다. 그런 다음 데이터베이스 테이블을 관리하기 위한 모델을 정의해야 합니다. ORM을 사용하여 데이터를 쿼리할 때 다양한 요구 사항을 충족하기 위해 다양한 방법을 사용할 수 있습니다. 데이터를 업데이트하고 삭제할 때 해당 방법을 사용하여 이를 달성할 수 있습니다. ORM을 사용하면 지루한 SQL 작업에서 벗어나 개발 효율성을 높일 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 ThinkPHP6에서 데이터베이스 작업에 ORM을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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