Heim  >  Artikel  >  PHP-Framework  >  So implementieren Sie ORM mit ThinkPHP6, um Datenbankvorgänge automatisch zu überprüfen

So implementieren Sie ORM mit ThinkPHP6, um Datenbankvorgänge automatisch zu überprüfen

王林
王林Original
2023-06-20 21:12:241623Durchsuche

Da die Funktionalität von Webanwendungen immer weiter zunimmt, müssen Entwickler oft viel Zeit damit verbringen, Datenbankvalidierungsregeln zu schreiben. Mithilfe des ORM-Frameworks (Object Relational Mapping) können Datenbankvalidierungsregeln und Geschäftslogik getrennt werden, was Zeit spart und die Entwicklungseffizienz verbessert. Unter anderem bietet ThinkPHP6 eine automatische Überprüfungsfunktion, mit deren Hilfe wir ORM-Datenbankoperationen zur automatischen Überprüfung schnell implementieren können. Als Nächstes stellen wir vor, wie Sie mit ThinkPHP6 ORM implementieren, um Datenbankvorgänge automatisch zu überprüfen.

  1. ThinkPHP6 installieren

Zuerst müssen wir ThinkPHP6 installieren. Sie können Composer verwenden, um ThinkPHP6 über den folgenden Befehl zu installieren:

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

Natürlich können Sie auch auf die offizielle Website von ThinkPHP6 gehen ( https://www.thinkphp.cn), um den neuesten Framework-Quellcode herunterzuladen.

    Datenbankverbindung konfigurieren

    Bevor wir die automatische ORM-Verifizierung implementieren, müssen wir zuerst die Datenbankverbindung konfigurieren. Es kann in config/database.php im Projektstammverzeichnis konfiguriert werden, zum Beispiel:

    <?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格式不正确 ',
        ];
    }
      🎜Modelle erstellen und verwenden🎜🎜🎜In ThinkPHP6 verwenden Sie Modelle, um Interagieren Sie mit der Datenbank. Sie können ein Modell mit dem folgenden Befehl erstellen: 🎜🎜php bin/think make:model Test🎜🎜Dieser Befehl erstellt Test.php im Verzeichnis <code>app -Datei, die eine leere Modellklasse Test enthält. In dieser Klasse können wir Datenbankoperationstabellennamen, Primärschlüsselnamen, automatische Zeitstempel und andere Definitionen angeben. Zum Beispiel: 🎜rrreee🎜In dieser Modellklasse können wir auch einige Datenvalidierungsregeln definieren. Zum Beispiel: 🎜rrreee🎜In diesem Beispiel definieren wir drei Validierungsregeln: name ist erforderlich, die maximale Länge beträgt 10; age ist erforderlich, muss eine Ganzzahl sein und Der Wert liegt zwischen 1 und 100; email muss im E-Mail-Format vorliegen. Diese Regeln werden automatisch überprüft, wenn mit Modelldaten gearbeitet wird. 🎜
        🎜Verwenden Sie die automatische Überprüfungsfunktion🎜🎜🎜Wenn Sie das Modell zum Ausführen von Datenbankoperationen verwenden, müssen wir nur die entsprechende Methode aufrufen, zum Beispiel: 🎜rrreee🎜Bei Verwendung dieser Methoden führt ThinkPHP6 dies automatisch aus Überprüfen Sie anhand der im Modell definierten Validierungsregeln. Wenn die Validierung fehlschlägt, wird eine Ausnahme ausgelöst und der Grund für den Fehler zurückgegeben. 🎜
          🎜Benutzerdefinierte Verifizierungsnachricht🎜🎜🎜Bei der automatischen Verifizierung können wir die Fehlermeldung definieren, wenn die Verifizierung fehlschlägt, indem wir der Modellklasse das statische Attribut message hinzufügen. Zum Beispiel: 🎜rrreee🎜In diesem Beispiel definieren wir die Fehlermeldung für einen Verifizierungsfehler. Wenn ein Datenvalidierungsfehler erkannt wird, gibt ThinkPHP6 automatisch die entsprechenden Fehlerinformationen entsprechend der definierten Meldung zurück. 🎜🎜Zusammenfassung🎜🎜Durch die Verwendung der automatischen Verifizierungsfunktion von ThinkPHP6 können wir die automatische ORM-Verifizierung von Datenbankvorgängen schnell implementieren und so die Entwicklungseffizienz verbessern und Fehler reduzieren. Das Definieren von Datenvalidierungsregeln und Nachrichtenaufforderungen in der Modellklasse kann uns bei der Entwicklung und Wartung helfen. Ich hoffe, dieser Artikel kann allen helfen und die Verwendung von ThinkPHP6 für alle angenehmer machen. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie ORM mit ThinkPHP6, um Datenbankvorgänge automatisch zu überprüfen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn