Jadual Kandungan
Apakah Pengesahan Laravel
Cara menggunakan Pengesahan Laravel
Peraturan pengesahan yang biasa digunakan
Peraturan pengesahan tersuai
Mesej ralat tersuai
Ringkasan
Rumah rangka kerja php Laravel Pembangunan Laravel: Bagaimana untuk mengesahkan permintaan borang menggunakan Pengesahan Laravel?

Pembangunan Laravel: Bagaimana untuk mengesahkan permintaan borang menggunakan Pengesahan Laravel?

Jun 13, 2023 pm 01:34 PM
laravel pengesahan borang validation

Laravel 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;
Salin selepas log masuk

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();
    }

    // 在此处写入数据到数据库的逻辑
}
Salin selepas log masuk

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);
});
Salin selepas log masuk

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' => '密码和确认密码不匹配',
]);
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP vs. Flutter: Pilihan terbaik untuk pembangunan mudah alih PHP vs. Flutter: Pilihan terbaik untuk pembangunan mudah alih May 06, 2024 pm 10:45 PM

PHP vs. Flutter: Pilihan terbaik untuk pembangunan mudah alih

Laravel - Perintah Artisan Laravel - Perintah Artisan Aug 27, 2024 am 10:51 AM

Laravel - Perintah Artisan

Bagaimana untuk menggunakan pemetaan hubungan objek (ORM) dalam PHP untuk memudahkan operasi pangkalan data? Bagaimana untuk menggunakan pemetaan hubungan objek (ORM) dalam PHP untuk memudahkan operasi pangkalan data? May 07, 2024 am 08:39 AM

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

Analisis kelebihan dan kekurangan alat ujian unit PHP Analisis kelebihan dan kekurangan alat ujian unit PHP May 06, 2024 pm 10:51 PM

Analisis kelebihan dan kekurangan alat ujian unit PHP

Seni bina dan amalan sistem teragih PHP Seni bina dan amalan sistem teragih PHP May 04, 2024 am 10:33 AM

Seni bina dan amalan sistem teragih PHP

Perbandingan versi terkini Laravel dan CodeIgniter Perbandingan versi terkini Laravel dan CodeIgniter Jun 05, 2024 pm 05:29 PM

Perbandingan versi terkini Laravel dan CodeIgniter

Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan? Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan? Jun 01, 2024 pm 01:34 PM

Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan?

Ujian unit kod PHP dan ujian integrasi Ujian unit kod PHP dan ujian integrasi May 07, 2024 am 08:00 AM

Ujian unit kod PHP dan ujian integrasi

See all articles