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?

王林
王林asal
2023-06-13 13:34:521115semak imbas

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;

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!

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