Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan pengesahan borang dalam rangka kerja CakePHP?

Bagaimana untuk menggunakan pengesahan borang dalam rangka kerja CakePHP?

WBOY
WBOYasal
2023-06-04 19:31:46828semak imbas

Rangka kerja CakePHP ialah rangka kerja PHP popular yang menyediakan mekanisme pengesahan borang dengan fungsi yang kaya yang boleh membantu pembangun memproses data borang dengan lebih mudah, cekap dan boleh dipercayai. Dalam artikel ini, kami akan memperkenalkan cara menggunakan pengesahan borang dalam rangka kerja CakePHP.

  1. Buat borang

Pertama, kita perlu mencipta borang, yang akan digunakan untuk menyerahkan data ke pelayan untuk diproses. Dalam rangka kerja CakePHP, kita boleh menggunakan kelas pembantu borang, yang menyediakan kaedah untuk mencipta borang dan secara automatik boleh menambah peraturan pengesahan borang. Berikut ialah contoh bentuk mudah:

<?= $this->Form->create($user) ?>
    <?= $this->Form->input('username') ?>
    <?= $this->Form->input('password') ?>
    <?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>

Dalam kod di atas, kami telah menggunakan kaedah $this->Form->create() untuk mencipta borang dan lulus pembolehubah bernama $user sebagai sumber data borang. Kemudian, kami menggunakan kaedah $this->Form->input() untuk mencipta dua kotak input borang untuk memasukkan nama pengguna dan kata laluan. Akhir sekali, kami mencipta butang hantar menggunakan kaedah $this->Form->button(), dan apabila pengguna mengklik butang tersebut, data borang akan diserahkan ke bahagian pelayan.

  1. Buat peraturan pengesahan

Seterusnya, kami perlu mencipta beberapa peraturan pengesahan untuk memastikan data borang yang diserahkan memenuhi keperluan kami. Dalam rangka kerja CakePHP, kita boleh menggunakan komponen pengesahan, yang menyediakan beberapa peraturan pengesahan terbina dalam, seperti yang diperlukan, panjang minimum, nilai maksimum, dsb.

Berikut ialah contoh peraturan pengesahan mudah:

<?php
namespace AppModelEntity;

use CakeORMEntity;
use CakeAuthDefaultPasswordHasher;

class User extends Entity
{
    protected $_accessible = [
        '*' => true,
        'id' => false
    ];

    protected function _setPassword($password)
    {
        return (new DefaultPasswordHasher)->hash($password);
    }

    public function validationDefault(Validator $validator)
    {
        $validator
            ->notEmptyString('username', __('Username cannot be empty'))
            ->maxLength('username', 50, __('Username cannot be longer than 50 characters'))
            ->notEmptyString('password', __('Password cannot be empty'))
            ->maxLength('password', 255, __('Password cannot be longer than 255 characters'));

        return $validator;
    }
}

Dalam kod di atas, kami telah mencipta kelas entiti bernama User dan menentukan kelas entiti bernama kaedah validationDefault(). Dalam kaedah ini, kami menggunakan objek pengesah untuk menentukan beberapa peraturan pengesahan, seperti nama pengguna diperlukan, panjang nama pengguna tidak boleh melebihi 50 aksara, kata laluan diperlukan, dan panjang kata laluan tidak boleh melebihi 255 aksara, dsb.

  1. Gunakan Peraturan Pengesahan

Akhir sekali, kami perlu menggunakan peraturan pengesahan pada borang kami, ini akan memastikan data borang yang diserahkan memenuhi keperluan kami. Dalam rangka kerja CakePHP, kami boleh menggunakan peraturan pengesahan menggunakan langkah berikut:

public function add()
{
    $user = $this->Users->newEntity();
    if ($this->request->is('post')) {
        $user = $this->Users->patchEntity($user, $this->request->getData());
        if ($this->Users->save($user)) {
            $this->Flash->success(__('The user has been saved.'));

            return $this->redirect(['action' => 'index']);
        }
        $this->Flash->error(__('The user could not be saved. Please, try again.'));
    }
    $this->set(compact('user'));
    $this->viewBuilder()->setLayout('login');
}

Dalam kod di atas, kami telah mencipta kaedah bernama add() yang mengendalikan penyerahan borang. Dalam kaedah ini, kami mula-mula mencipta objek entiti bernama $user untuk menyimpan data borang. Kemudian, kami menggunakan kaedah $this->Users->patchEntity() untuk mengisi data borang yang diserahkan ke dalam objek entiti dan menggunakan kaedah $this->Users->save() untuk menyimpan objek entiti.

Jika simpan berjaya, kami menggunakan kaedah $this->Flash->success() untuk memaparkan mesej kejayaan dan ubah hala ke halaman senarai pengguna. Jika simpan gagal, kami menggunakan kaedah $this->Flash->error() untuk memaparkan mesej ralat dan memaparkan semula halaman borang.

Akhir sekali, kami menghantar objek entiti ke paparan dan menetapkan reka letak paparan kepada login.

Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan pengesahan borang dalam rangka kerja CakePHP. Anda boleh menggunakan kelas pembantu borang untuk membuat borang, menggunakan komponen pengesahan untuk mencipta peraturan pengesahan dan menggunakan kaedah patchEntity() untuk mengisi data borang ke dalam objek entiti. Apabila cuba menyimpan objek entiti, rangka kerja CakePHP akan menggunakan peraturan pengesahan secara automatik dan mengembalikan mesej ralat pengesahan. Ciri ini menjadikan rangka kerja CakePHP sebagai alat berkuasa yang membantu anda bekerja dengan data borang dengan lebih mudah.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pengesahan borang dalam rangka kerja CakePHP?. 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