Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan pengesahan borang dalam ThinkPHP6?

Bagaimana untuk melaksanakan pengesahan borang dalam ThinkPHP6?

WBOY
WBOYasal
2023-06-12 09:36:261573semak imbas

ThinkPHP6 ialah rangka kerja MVC berasaskan PHP yang sangat memudahkan pembangunan aplikasi web. Antaranya, pengesahan borang adalah fungsi yang sangat asas dan penting. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan operasi pengesahan borang dalam ThinkPHP6.

1. Definisi peraturan pengesahan
Dalam ThinkPHP6, peraturan pengesahan perlu ditakrifkan dalam pengawal Kita boleh mentakrifkan peraturan dengan mentakrifkan atribut $validate dalam pengawal, seperti yang ditunjukkan di bawah:

use thinkValidate;
class UserController extends Controller {
    protected $validate;
    public function __construct(Validate $validate) {
        $this->validate = $validate;
    }

    // 定义验证规则
    protected $rule = [
        'name' => 'require|max:25',
        'email' => 'email',
        'age' => 'number|between:1,120',
    ];
}

2. Pengesahan Borang
Selepas kami mentakrifkan peraturan pengesahan, kami boleh menggunakan kaedah check() $validate dalam pengawal untuk melaksanakan peraturan pengesahan yang kami takrifkan. Operasi pengesahan boleh dilaksanakan dengan memanggil kaedah validate() pada objek $request dalam pengawal dan menghantar peraturan pengesahan.

public function add(Request $request) {
    $data = $request->param();
    $result = $this->validate($data, $this->rule);
    if ($result !== true) {
        return ['code' => 1, 'msg' => $result];
    }
    // 验证通过,执行添加操作
}

Dalam kod di atas, kaedah $request->param() mengembalikan tatasusunan yang mengandungi semua nilai parameter dalam borang. Kami menghantarnya ke kaedah validate() untuk pengesahan Jika pengesahan gagal, mesej ralat akan dikembalikan Jika pengesahan lulus, operasi penambahan akan dilakukan secara langsung.

3. Mesej ralat tersuai
Dalam pembangunan sebenar, kami mungkin perlu menetapkan mesej ralat tersuai untuk beberapa peraturan Ini boleh dicapai dengan menggunakan kaedah mesej() dalam peraturan pengesahan.

protected $rule = [
    'name' => 'require|max:25',
    'email' => 'email',
    'age' => 'number|between:1,120',
];

protected $message = [
    'name.require' => '用户名必填',
    'name.max' => '用户名最多不能超过25个字符',
    'email.email' => '邮箱格式错误',
    'age.number' => '年龄必须是数字',
    'age.between' => '年龄必须在1~120之间',
];

Dengan menggunakan kaedah message() $validate dalam pengawal, kami boleh menyesuaikan mesej ralat peraturan. Contohnya:

$result = $this->validate($data, $this->rule, $this->message);

4. Pengesahan kelompok
Apabila kita perlu mengesahkan berbilang borang, kita boleh menggunakan kaedah batch() $validate untuk melaksanakan pengesahan kelompok. Contohnya:

public function verify(Request $request) {
    $data = $request->param();
    $rule = [
        'name' => 'require|max:25',
        'email' => 'email',
        'age' => 'number|between:1,120',
    ];
    $message = [
        'name.require' => '用户名必填',
        'name.max' => '用户名最多不能超过25个字符',
        'email.email' => '邮箱格式错误',
        'age.number' => '年龄必须是数字',
        'age.between' => '年龄必须在1~120之间',
    ];
    $result = $this->validate($data, $rule, $message, true);
    if ($result !== true) {
        return ['code' => 1, 'msg' => $result];
    }
    // 验证通过,执行相关操作
}

Dalam kod di atas, parameter keempat kaedah $validate adalah benar, yang bermaksud pengesahan kelompok didayakan. Selepas menghidupkan pengesahan kelompok, anda boleh menetapkan berbilang peraturan pengesahan borang untuk mengembalikan semua mesej ralat apabila pengesahan gagal.

Ringkasan:
Dalam ThinkPHP6, peraturan pengesahan ditakrifkan dengan mentakrifkan atribut $validate dalam pengawal, pengesahan borang dilakukan dengan memanggil kaedah validate() pada objek $request, dan boleh dilakukan melalui message() Kaedah untuk menetapkan mesej ralat tersuai. Pada masa yang sama, pengesahan kelompok boleh dicapai melalui kaedah kelompok(). Operasi ini sangat asas dan biasa digunakan, dan kita mesti menguasainya dengan mahir dalam pembangunan sebenar.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan borang dalam ThinkPHP6?. 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