Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Langkah untuk melaksanakan peraturan tersuai untuk pengesah (Pengesah) menggunakan rangka kerja Yii

Langkah untuk melaksanakan peraturan tersuai untuk pengesah (Pengesah) menggunakan rangka kerja Yii

WBOY
WBOYasal
2023-07-28 20:28:521116semak imbas

Langkah untuk melaksanakan peraturan tersuai untuk pengesah (Pengesah) menggunakan rangka kerja Yii

Rangka kerja Yii ialah rangka kerja PHP berprestasi tinggi yang menyediakan set pengesah yang kaya (Pengesah) untuk mengesahkan input pengguna. Kadangkala, kami perlu menyesuaikan beberapa peraturan pengesahan berdasarkan keperluan perniagaan tertentu. Artikel ini akan memperkenalkan langkah tentang cara menggunakan peraturan tersuai dalam rangka kerja Yii dan memberikan contoh kod untuk lebih memahami pembaca.

Langkah 1: Buat fail peraturan tersuai

Mula-mula, kita perlu mencipta fail untuk menyimpan peraturan pengesahan tersuai. Dalam rangka kerja Yii, adalah kebiasaan untuk meletakkan fail sedemikian dalam direktori /validators. Fail ini boleh dibuat menggunakan baris arahan: /validators目录下。可以使用命令行来创建这个文件:

mkdir validators
touch validators/CustomValidator.php

CustomValidator.php文件中,我们将定义自己的验证规则。以下是一个简单的示例:

<?php

namespace appalidators;

use yiialidatorsValidator;

class CustomValidator extends Validator
{
    public function validateAttribute($model, $attribute)
    {
        // 在这里编写自定义的验证规则逻辑
        $value = $model->$attribute;
        
        // 验证规则的逻辑代码
        if ($value != 'custom') {
            $this->addError($model, $attribute, 'The attribute must be "custom".');
        }
    }
}

在上面的示例中,我们创建了一个名为CustomValidator的类,继承自Validator类。在validateAttribute方法中,我们编写了自定义的验证规则逻辑,将会在模型中使用。

步骤2:使用自定义规则

在我们自定义的验证规则文件创建完毕后,我们需要在模型中使用它。以下是一个使用自定义规则的示例:

<?php

namespace appmodels;

use appalidatorsCustomValidator;
use yiiaseModel;

class ExampleForm extends Model
{
    public $attribute;

    public function rules()
    {
        return [
            [['attribute'], CustomValidator::className()],
        ];
    }
}

在上面的示例中,我们创建了一个名为ExampleForm的模型类,继承自Model类。在rules方法中,我们使用CustomValidator类来定义了一个attribute属性的验证规则。

现在,当我们对ExampleForm模型的attribute属性进行验证时,会自动调用CustomValidator类中的验证规则。

步骤3:使用自定义规则进行验证

在模型中定义了自定义规则后,我们可以在控制器或其他地方使用模型来进行验证。以下是一个简单的示例:

<?php

namespace appcontrollers;

use appmodelsExampleForm;
use Yii;
use yiiwebController;

class ExampleController extends Controller
{
    public function actionIndex()
    {
        $model = new ExampleForm();

        // 假设用户以POST方式提交了表单数据
        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            // 验证成功,执行其他业务逻辑
        } else {
            // 验证失败,重新显示表单
            return $this->render('index', [
                'model' => $model,
            ]);
        }
    }
}

在上面的示例中,我们创建了一个名为ExampleController的控制器,在actionIndex方法中使用了ExampleForm模型。当用户以POST方式提交了表单数据时,我们首先加载数据到模型中,然后调用validate()rrreee

Dalam fail CustomValidator.php kami akan mentakrifkan peraturan pengesahan kami sendiri. Berikut ialah contoh mudah:

rrreee

Dalam contoh di atas, kami telah mencipta kelas yang dipanggil CustomValidator, yang mewarisi daripada kelas Validator. Dalam kaedah validateAttribute, kami menulis logik peraturan pengesahan tersuai yang akan digunakan dalam model.

Langkah 2: Gunakan peraturan tersuai

Selepas fail peraturan pengesahan tersuai kami dibuat, kami perlu menggunakannya dalam model. Berikut ialah contoh penggunaan peraturan tersuai:

rrreee

Dalam contoh di atas, kami telah mencipta kelas model yang dipanggil ExampleForm, yang mewarisi daripada kelas Model. Dalam kaedah rules, kami menggunakan kelas CustomValidator untuk mentakrifkan peraturan pengesahan bagi atribut atribut. 🎜🎜Sekarang, apabila kami mengesahkan atribut attribute model ExampleForm, peraturan pengesahan dalam kelas CustomValidator akan dipanggil secara automatik. 🎜🎜Langkah 3: Gunakan peraturan tersuai untuk pengesahan 🎜🎜Selepas mentakrifkan peraturan tersuai dalam model, kita boleh menggunakan model dalam pengawal atau di tempat lain untuk pengesahan. Berikut ialah contoh mudah: 🎜rrreee🎜 Dalam contoh di atas, kami mencipta pengawal bernama ExampleController dan menggunakan dalam kaedah <code>actionIndex ExampleFormModel. Apabila pengguna menyerahkan data borang melalui POST, kami mula-mula memuatkan data ke dalam model, dan kemudian memanggil kaedah validate() untuk mengesahkan sama ada data mematuhi peraturan model. 🎜🎜Jika pengesahan berjaya, kami boleh melaksanakan logik perniagaan lain. Jika pengesahan gagal, kami memaparkan semula borang dan menyerahkan model kepada paparan. 🎜🎜Ringkasan🎜🎜Melalui langkah di atas, kami berjaya melaksanakan fungsi peraturan pengesahan tersuai dalam rangka kerja Yii. Dengan membuat fail peraturan tersuai, menggunakan peraturan tersuai dan mengesahkan, kami boleh mengesahkan input pengguna secara fleksibel berdasarkan keperluan perniagaan tertentu. Menggunakan pengesah rangka kerja Yii, kami boleh melindungi integriti data dan keselamatan aplikasi kami dengan lebih baik. 🎜🎜Di atas ialah langkah untuk menggunakan rangka kerja Yii untuk melaksanakan peraturan tersuai pengesah. Saya harap artikel ini dapat membantu pembaca apabila menggunakan rangka kerja Yii untuk pengesahan data. 🎜

Atas ialah kandungan terperinci Langkah untuk melaksanakan peraturan tersuai untuk pengesah (Pengesah) menggunakan rangka kerja Yii. 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