Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan ThinkPHP6 untuk melaksanakan ORM untuk mengesahkan operasi pangkalan data secara automatik

Cara menggunakan ThinkPHP6 untuk melaksanakan ORM untuk mengesahkan operasi pangkalan data secara automatik

王林
王林asal
2023-06-20 21:12:241684semak imbas

Memandangkan fungsi aplikasi web terus meningkat, pembangun selalunya perlu menghabiskan banyak masa menulis peraturan pengesahan pangkalan data. Menggunakan rangka kerja ORM (Pemetaan Perhubungan Objek), peraturan pengesahan pangkalan data dan logik perniagaan boleh diasingkan, menjimatkan masa dan meningkatkan kecekapan pembangunan. Antaranya, ThinkPHP6 menyediakan fungsi pengesahan automatik, yang boleh membantu kami melaksanakan operasi pangkalan data pengesahan automatik ORM dengan cepat. Seterusnya, kami akan memperkenalkan cara menggunakan ThinkPHP6 untuk melaksanakan ORM untuk mengesahkan operasi pangkalan data secara automatik.

  1. Pasang ThinkPHP6

Mula-mula, kita perlu memasang ThinkPHP6. Anda boleh menggunakan Composer untuk memasang ThinkPHP6 melalui arahan berikut:

composer create-project topthink/think tp6 --prefer-dist

Sudah tentu, anda juga boleh memuat turun sumber rangka kerja terkini dari laman web rasmi ThinkPHP6 (https://www .thinkphp.cn) kod.

  1. Mengkonfigurasi sambungan pangkalan data

Sebelum melaksanakan pengesahan automatik ORM, kami perlu mengkonfigurasi sambungan pangkalan data terlebih dahulu. Ia boleh dikonfigurasikan dalam config/database.php dalam direktori akar projek, contohnya:

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. Buat dan gunakan model

Dalam ThinkPHP6, gunakan model untuk berinteraksi dengan pangkalan data . Anda boleh mencipta model melalui arahan berikut:

php bin/think make:model Test

Arahan ini akan mencipta fail app dalam direktori Test.php, yang mengandungi kelas model kosong Test . Kita boleh menentukan nama jadual operasi pangkalan data, nama kunci utama, cap masa automatik dan definisi lain dalam kelas ini. Contohnya:

<?php
namespace appmodel;
use thinkModel;
class Test extends Model
{
    // 指定表名
    protected $table = 'test';
    // 指定主键名
    protected $pk = 'id';
    // 自动时间戳
    protected $autoWriteTimestamp = true;
}

Dalam kelas model ini, kita juga boleh mentakrifkan beberapa peraturan pengesahan data. Contohnya:

<?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',
    ];
}

Dalam contoh ini, kami mentakrifkan tiga peraturan pengesahan: nameDiperlukan, panjang maksimum ialah 10 ageDiperlukan, mestilah integer, nilainya antara 1 dan 100; 🎜>Mesti dalam format e-mel. Peraturan ini akan disahkan secara automatik apabila beroperasi pada data model. email

    Gunakan fungsi pengesahan automatik
Apabila menggunakan model untuk operasi pangkalan data, kita hanya perlu memanggil kaedah yang sepadan, contohnya:

// 添加数据
$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 '数据查询失败';
}

Dalam Apabila menggunakan kaedah ini, ThinkPHP6 mengesahkan secara automatik berdasarkan peraturan pengesahan yang ditakrifkan dalam model. Jika pengesahan gagal, pengecualian dilemparkan dan sebab kegagalan dikembalikan.

    Mesej pengesahan tersuai
Dalam pengesahan automatik, kita boleh menentukan mesej ralat apabila pengesahan gagal dengan menambahkan atribut statik

dalam kelas model. Contohnya: 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格式不正确 ',
    ];
}

Dalam contoh ini, kami mentakrifkan mesej ralat untuk kegagalan pengesahan. Jika kegagalan pengesahan data dikesan, ThinkPHP6 akan secara automatik mengembalikan maklumat ralat yang sepadan mengikut mesej yang ditetapkan.

Ringkasan

Dengan menggunakan fungsi pengesahan automatik ThinkPHP6, kami boleh melaksanakan pengesahan automatik ORM bagi operasi pangkalan data dengan pantas, dengan itu meningkatkan kecekapan pembangunan dan mengurangkan ralat. Mentakrifkan peraturan pengesahan data dan gesaan mesej dalam kelas model boleh membantu kami membangun dan menyelenggara dengan lebih mudah. Saya harap artikel ini dapat membantu semua orang dan menjadikan semua orang lebih selesa apabila menggunakan ThinkPHP6.

Atas ialah kandungan terperinci Cara menggunakan ThinkPHP6 untuk melaksanakan ORM untuk mengesahkan operasi pangkalan data secara automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn