ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 でデータベース操作に ORM を使用するにはどうすればよいですか?

ThinkPHP6 でデータベース操作に ORM を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-12 12:16:50991ブラウズ

PHP の発展に伴い、データベースにアクセスして操作する必要がある Web アプリケーションがますます増えています。 ORM (オブジェクト リレーショナル マッピング) は、オブジェクト指向の方法でデータベースを管理し、保守可能でスケーラブルで移植可能なソリューションを提供する、一般的なデータベース操作方法です。 ThinkPHP6 は人気のある PHP フレームワークの 1 つで、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、および を呼び出すことができます。チェーンやその他の方法で制限します。

  2. find メソッドと select メソッド

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

    find メソッドは、指定された主キー値を持つレコードを検索でき、select メソッドは、条件を満たす複数のレコードをクエリできます。

  3. value メソッド

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

    value メソッドを使用して、指定されたフィールドの値をクエリします。

  4. count メソッド

    $count = User::count();

    count メソッドを使用して、条件を満たすレコードの数をクエリします。

  5. or クエリ

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

    or ステートメントは、whereOr メソッドを使用して実装できます。

  6. ページング クエリ

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

    paginate メソッドを使用してページング クエリを実装し、各ページに表示されるレコードの数をカスタマイズします。

ステップ 4. データの更新
ORM を使用してデータベース レコードを更新する場合、update メソッドを使用できます。たとえば、次はレコードを更新する例です。

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

find メソッドを使用して、指定された主キー値を持つレコードを検索できます。その後、オブジェクトのプロパティを変更できます。最後に、save メソッドを呼び出して、変更されたレコードをデータベースに保存します。

ステップ 5. データの削除
ORM を使用してデータベース レコードを削除する場合は、delete メソッドを使用できます。たとえば、次はレコードを削除する例です。

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

find メソッドを使用して、指定された主キー値を持つレコードを検索できます。次に、delete メソッドを呼び出してデータベースからレコードを削除します。

概要
この記事では、ThinkPHP6 でのデータベース操作に ORM を使用する基本的な手順を紹介します。まず、データベース接続情報を構成する必要があります。次に、データベース テーブルを管理するモデルを定義する必要があります。 ORM を使用してデータをクエリする場合、さまざまなニーズを満たすためにさまざまな方法を使用できます。データを更新および削除するときは、対応するメソッドを使用してこれを実現できます。 ORM を使用すると、面倒な SQL 操作から解放され、開発効率が向上します。この記事があなたのお役に立てば幸いです!

以上がThinkPHP6 でデータベース操作に ORM を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。