


Pembangunan Laravel: Bagaimana untuk mengesahkan permintaan borang menggunakan Pengesahan Laravel?
Jun 13, 2023 pm 01:34 PMLaravel ialah rangka kerja pembangunan web PHP yang popular yang menyediakan banyak ciri mudah untuk mempercepatkan kerja pembangun. Antaranya, Pengesahan Laravel ialah fungsi yang sangat praktikal yang boleh membantu kami mengesahkan permintaan borang dan data yang dimasukkan pengguna dengan mudah. Artikel ini akan memperkenalkan cara menggunakan Pengesahan Laravel untuk mengesahkan permintaan borang.
Apakah Pengesahan Laravel
Pengesahan Laravel ialah kaedah pengesahan borang yang dibina dalam rangka kerja Laravel. Ia menyediakan cara ringkas, standard dan mudah digunakan untuk mengesahkan permintaan borang dan data input pengguna. Anda boleh menggunakan pelbagai peraturan untuk mengesahkan pelbagai jenis data, mengurangkan lebihan kod dan memudahkan proses pembangunan kod.
Cara menggunakan Pengesahan Laravel
Pertama, kita perlu menggunakan kelas Pengesahan Laravel dalam pengawal:
use IlluminateSupportFacadesValidator;
Apabila kita perlu mengesahkan permintaan, kita boleh menggunakan Pengesah: :make() kaedah:
public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|min:3|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|min:8|confirmed', ]); if ($validator->fails()) { return redirect('register') ->withErrors($validator) ->withInput(); } // 在此处写入数据到数据库的逻辑 }
Dalam kod di atas, kami menggunakan kaedah Validator::make() untuk mentakrifkan peraturan pengesahan. Parameter pertama yang dihantar kepada kaedah buat ialah data permintaan yang perlu disahkan. Parameter kedua ialah tatasusunan yang menentukan peraturan pengesahan Kekunci dalam tatasusunan ialah nama medan yang perlu disahkan, dan nilainya ialah peraturan pengesahan dalam bentuk rentetan.
Dalam kod di atas, kami mentakrifkan tiga medan:
- nama: diperlukan, bilangan minimum aksara ialah 3, bilangan maksimum aksara ialah 255
- e-mel: Diperlukan, format e-mel, pengesahan keunikan
- kata laluan: diperlukan, bilangan aksara minimum ialah 8, sepadan dengan medan_pengesahan kata laluan
Jika mana-mana peraturan gagal untuk mengesahkan, kami akan menghantar mesej ralat Kembali ke halaman pendaftaran dan gunakan kaedah withInput() untuk mengembalikan data yang telah diserahkan oleh pengguna sebelum ini.
Peraturan pengesahan yang biasa digunakan
Apabila menggunakan Pengesahan Laravel, terdapat banyak peraturan untuk digunakan. Beberapa peraturan biasa disenaraikan di bawah:
- diperlukan: Medan ini mesti diisi
- e-mel: Medan ini mesti mematuhi spesifikasi alamat e-mel
- unique:table_name , field_name: Nilai medan ini mestilah unik dalam jadual data yang ditentukan
- min:num: Panjang minimum medan ini mestilah bilangan aksara
- max:num: Panjang maksimum bagi medan ini mestilah ialah bilangan aksara
- angka: medan mestilah nombor
- integer: medan mestilah integer
- alfa: medan mestilah aksara perkataan (a-z, A-Z)
- alpha_num: Medan mestilah aksara abjad angka
- disahkan: Medan mesti sepadan dengan nilai medan bernama field_name_confirmation
Peraturan ini hanyalah sebahagian daripada peraturan pengesahan , anda juga boleh menggunakan lebih banyak peraturan untuk mengesahkan data. Anda boleh mendapatkan senarai peraturan pengesahan yang lebih terperinci dalam dokumentasi Laravel.
Peraturan pengesahan tersuai
Kadangkala, kami memerlukan peraturan tersuai untuk mengesahkan data. Dalam Laravel, kita boleh menggunakan kaedah Validator::extend() untuk melaksanakan peraturan pengesahan tersuai. Berikut ialah contoh peraturan tersuai:
Validator::extend('phone_number', function ($attribute, $value, $parameters, $validator) { return preg_match('/^1[3-9][0-9]{9}$/', $value); });
Dalam contoh ini, kami mentakrifkan peraturan tersuai "nombor_telefon", yang akan mengesahkan sama ada $formData['nombor_telefon'] memenuhi spesifikasi yang ditentukan anda sendiri. Jika pengesahan berjaya, kembalikan benar, sebaliknya kembalikan palsu.
Mesej ralat tersuai
Kami juga boleh menyesuaikan mesej ralat untuk menjadikan mesej ralat lebih mesra pengguna. Berikut ialah contoh mesej ralat tersuai:
$validator = Validator::make($request->all(), [ 'email' => 'required|email|unique:users,email', 'password' => 'required|min:8|confirmed', ]); // 自定义错误信息 $validator->setAttributeNames([ 'email' => '邮箱', 'password' => '密码', ]); // 自定义错误信息模板 $validator->setCustomMessages([ 'required' => ':attribute字段不能为空', 'email' => '请输入正确的邮箱地址', 'unique' => ':attribute已经被占用了', 'min' => ':attribute长度不能小于:min个字符', 'confirmed' => '密码和确认密码不匹配', ]);
Dalam kod di atas, kami menggunakan kaedah setAttributeNames() untuk menukar nama medan untuk menjadikan mesej ralat lebih berperikemanusiaan. Kami juga menggunakan kaedah setCustomMessages() untuk mentakrifkan templat mesej ralat agar lebih mudah dan pantas untuk menukar mesej ralat dan menjadikannya lebih mesra pengguna.
Ringkasan
Melalui pengenalan di atas, kami mempelajari cara menggunakan Pengesahan Laravel untuk mengesahkan permintaan borang. Ini boleh mengelakkan ralat yang disebabkan oleh input pengguna yang salah, mengendalikan mesej ralat dengan lebih mudah dan menjimatkan masa pembangunan. Pengesahan Laravel boleh memastikan keteguhan dan keselamatan aplikasi dengan lebih baik.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk mengesahkan permintaan borang menggunakan Pengesahan Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP vs. Flutter: Pilihan terbaik untuk pembangunan mudah alih

Bagaimana untuk menggunakan pemetaan hubungan objek (ORM) dalam PHP untuk memudahkan operasi pangkalan data?

Analisis kelebihan dan kekurangan alat ujian unit PHP

Seni bina dan amalan sistem teragih PHP

Perbandingan versi terkini Laravel dan CodeIgniter

Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan?

Ujian unit kod PHP dan ujian integrasi
