ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 を使用して ORM を実装し、データベース操作を自動的に検証する方法
Web アプリケーションの機能が増加し続けるにつれて、開発者はデータベース検証ルールの作成に多くの時間を費やす必要があることがよくあります。 ORM (オブジェクト リレーショナル マッピング) フレームワークを使用すると、データベース検証ルールとビジネス ロジックを分離できるため、時間を節約し、開発効率を向上できます。その中で、ThinkPHP6 は自動検証機能を提供しており、ORM 自動検証データベース操作を迅速に実装するのに役立ちます。次に、ThinkPHP6 を使用して ORM 自動検証データベース操作を実装する方法を紹介します。
まず、ThinkPHP6 をインストールする必要があります。次のコマンドで Composer を使用して ThinkPHP6 をインストールできます:
composer create-project topthink/think tp6 --prefer-dist
もちろん、次のコマンドを実行することもできます。 ThinkPHP6 公式サイト (https://www.thinkphp.cn) へ 最新のフレームワークのソースコードをダウンロードします。
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, ];
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', ]; }
この例では、3 つの検証ルールを定義します: name
Required、最大長は 10、age
Required、整数である必要があります。値は 1 ~ 100 で、email
は電子メール形式である必要があります。これらのルールは、モデル データを操作するときに自動的に検証されます。
データベース操作にモデルを使用する場合は、対応するメソッドを呼び出すだけです (例:
// 添加数据 $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 はモデルで定義された検証ルールに基づいて自動的に検証します。」検証が失敗した場合は、例外がスローされ、失敗の理由が返されます。
自動検証では、静的属性 message
をモデル クラスに追加することで、検証が失敗したときの検証メッセージを定義できます。 。 エラーメッセージ。例:
<?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 は定義されたメッセージに従って、対応するエラー情報を自動的に返します。
まとめ
ThinkPHP6の自動検証機能を利用することで、データベース動作のORM自動検証を迅速に実装することができ、開発効率の向上とエラーの削減を実現します。モデル クラスでデータ検証ルールとメッセージ プロンプトを定義すると、開発と保守がより便利になります。この記事が皆様のお役に立ち、皆様が ThinkPHP6 をより快適に使用できるようになれば幸いです。
以上がThinkPHP6 を使用して ORM を実装し、データベース操作を自動的に検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。