Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan ThinkPHP6 untuk melaksanakan pengesahan borang

Cara menggunakan ThinkPHP6 untuk melaksanakan pengesahan borang

WBOY
WBOYasal
2023-06-20 12:01:481434semak imbas

Dengan perkembangan Internet, pengesahan borang telah menjadi bahagian penting dalam pembangunan web. Tanpa mekanisme pengesahan borang yang berkesan, data yang dimasukkan oleh pengguna tidak akan diterima oleh sistem kerana ralat format atau logik, yang akan memberi impak yang besar kepada keseluruhan pengalaman pengguna dan keselamatan sistem. ThinkPHP, salah satu rangka kerja yang biasa digunakan dalam pembangunan PHP, juga menyediakan mekanisme pengesahan bentuk yang sangat mudah dan boleh disesuaikan. Artikel ini akan memperkenalkan cara menggunakan ThinkPHP6 untuk melaksanakan pengesahan borang.

1. Cipta pengawal baharu

Pertama, buat fail pengawal dalam ThinkPHP6 Sebagai contoh, kita boleh mencipta fail UserController.php. Dalam pengawal ini, kami akan melaksanakan fungsi untuk mengemas kini maklumat am pengguna dan menggunakan pengesahan borang.

2. Tulis model data

Seterusnya, kita perlu mencipta fail User.php baharu dalam fail Model untuk menyimpan model yang sepadan dengan jadual data pengguna. Dalam fail ini, kami boleh mentakrifkan jenis medan yang sepadan dan peraturan pengesahan data, seperti yang ditunjukkan di bawah:

namespace appmodel;

use thinkModel;

class User extends Model
{
    // 定义模型对应数据表
    protected $table = 'user';

    // 定义数据表字段对应的验证规则
    protected $rule = [
        'username' => 'require|length:6,20|unique:user',
        'password' => 'require|alphaDash|confirm',
        'email'    => 'require|email|unique:user',
        'mobile'   => 'mobile|unique:user'
    ];

    // 定义验证错误信息
    protected $message = [
        'username.require' => '用户名不能为空',
        'username.length'  => '用户名长度为6-20个字符',
        'username.unique'  => '该用户名已存在',
        'password.require' => '密码不能为空',
        'password.alphaDash'  => '密码只能是字母、数字、下划线和破折号',
        'password.confirm' => '两次输入密码不一致',
        'email.require'    => '邮箱不能为空',
        'email.email'      => '邮箱格式不正确',
        'email.unique'     => '该邮箱已存在',
        'mobile.mobile'    => '手机号格式不正确',
        'mobile.unique'    => '该手机号已存在'
    ];
}

Dalam model ini, kami mula-mula mentakrifkan nama jadual dan mentakrifkan medan yang sepadan dengan peraturan Pengesahan dan mesej ralat pengesahan. Peraturan dan maklumat ini akan digunakan dalam pengawal untuk mengesahkan kesahihan data.

3 Tulis pengawal

Seterusnya, terima data dalam pengawal dan panggil fungsi validate() untuk mengesahkan data. Selepas pengesahan berjaya, simpan data ke pangkalan data.

namespace appcontroller;

use appmodelUser;
use thinkacadeRequest;

class UserController extends Base
{
    // 用户更新一般信息
    public function update()
    {
        // 接收数据并校验
        $data = Request::only(['username', 'password', 'email', 'mobile']);
        $validate =     hinkacadeValidate::rule([
            'username' => 'require|length:6,20|unique:user',
            'password' => 'require|alphaDash|confirm',
            'email'    => 'require|email|unique:user',
            'mobile'   => 'mobile|unique:user'
        ])->message([
            'username.require' => '用户名不能为空',
            'username.length'  => '用户名长度为6-20个字符',
            'username.unique'  => '该用户名已存在',
            'password.require' => '密码不能为空',
            'password.alphaDash'  => '密码只能是字母、数字、下划线和破折号',
            'password.confirm' => '两次输入密码不一致',
            'email.require'    => '邮箱不能为空',
            'email.email'      => '邮箱格式不正确',
            'email.unique'     => '该邮箱已存在',
            'mobile.mobile'    => '手机号格式不正确',
            'mobile.unique'    => '该手机号已存在'
        ]);
        if (!$validate->check($data)) {
            return json([
                'code' => -1,
                'msg'  => $validate->getError(),
                'data' => []
            ]);
        }

        // 保存数据至数据库
        $user = new User($data);
        $user->save();

        return json([
            'code' => 0,
            'msg'  => '保存成功',
            'data' => []
        ]);
    }
}

Dalam pengawal di atas, kami menggunakan fasad untuk menerima dan mengesahkan data. Memandangkan kami tidak menggunakan model Pengguna yang ditakrifkan sebelum ini di sini, peraturan pengesahan data dan mesej ralat ditakrifkan dalam fungsi validate(). Jika pengesahan gagal, kami boleh mengembalikan mesej ralat yang sepadan. Jika pengesahan berjaya, kami menyimpan data ke pangkalan data dan mengembalikan mesej kejayaan.

4. Ringkasan

Di atas ialah proses terperinci menggunakan ThinkPHP6 untuk melaksanakan pengesahan borang. Dalam pembangunan sebenar, pengesahan borang adalah fungsi yang sangat penting dan biasa Pengesahan borang yang munasabah boleh meningkatkan pengalaman pengguna dan keselamatan sistem. ThinkPHP6 menyediakan mekanisme pengesahan borang yang sangat mudah dan boleh disesuaikan. Kami boleh membuat pelarasan yang sepadan mengikut keperluan pembangunan sebenar untuk mencapai pengesahan borang yang lebih cekap dan fleksibel.

Atas ialah kandungan terperinci Cara menggunakan ThinkPHP6 untuk melaksanakan pengesahan borang. 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