Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk menggunakan pengesahan borang dan gesaan ralat dalam rangka kerja Rebet?

Bagaimana untuk menggunakan pengesahan borang dan gesaan ralat dalam rangka kerja Rebet?

WBOY
Lepaskan: 2023-06-03 09:12:01
asal
1608 orang telah melayarinya

Rebet ialah rangka kerja aplikasi web ringan berdasarkan PHP Ia menyediakan banyak fungsi untuk memudahkan pembangun membangunkan aplikasi web berprestasi tinggi dengan pantas. Antaranya, pengesahan borang dan gesaan ralat merupakan pautan penting dalam pembangunan aplikasi web, dan juga merupakan salah satu fungsi yang disediakan oleh rangka kerja Rebet.

Pengesahan borang dan gesaan ralat digunakan terutamanya untuk mengesahkan sama ada data borang yang diserahkan oleh pengguna memenuhi keperluan, dan memberitahu pengguna maklumat ralat tepat pada masanya supaya pengguna boleh membetulkan maklumat ralat dan serahkan semula.

Rangka kerja Rebet menyediakan komponen dan kaedah yang berkaitan untuk pengesahan borang dan gesaan ralat. Mari perkenalkan cara menggunakan komponen dan kaedah ini dalam rangka kerja Rebet.

1. Tetapkan peraturan pengesahan borang

Sebelum menggunakan rangka kerja Rebet untuk pengesahan borang, anda perlu menyesuaikan peraturan pengesahan borang terlebih dahulu. Dalam rangka kerja Rebet, anda boleh menggunakan pengesah untuk menentukan peraturan pengesahan borang. Dalam kod berikut, kami mentakrifkan UserValidator untuk mengesahkan data borang yang diserahkan oleh pengguna:

use RebetValidationValidator;
use RebetValidationRulesRequireRule;
use RebetValidationRulesEmailRule;

class UserValidator extends Validator
{
    protected function rules() : array
    {
        return [
            'name'  => [ new RequireRule() ],
            'email' => [ new RequireRule(), new EmailRule() ],
            'phone' => [],
        ];
    }

    protected function messages() : array
    {
        return [
            'name.require'  => '请输入您的姓名',
            'email.require' => '请输入您的邮箱',
            'email.email'   => '请输入正确的邮箱地址',
        ];
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan dua peraturan pengesahan, RequireRule dan EmailRule bermakna input tidak boleh kosong , dan EmailRule bermakna input Mesti dalam format e-mel. Pada masa yang sama, kami juga telah menyesuaikan beberapa mesej ralat Jika peraturan di atas tidak dipenuhi apabila pengguna mengisi borang, gesaan ralat yang sepadan akan diberikan.

2. Pengesahan data borang

Selepas anda mempunyai UserValidator tersuai, anda boleh menggunakannya untuk mengesahkan data borang yang diserahkan oleh pengguna. Dalam contoh kod berikut, kami mentakrifkan UserController untuk menerima dan mengesahkan data borang yang diserahkan oleh pengguna.

use RebetHttpRequest;
use RebetValidationValidationFailedException;

class UserController
{
    public function register(Request $request)
    {
        try {
            $validate = $request->validate(UserValidator::class); // 使用UserValidator来验证表单数据

            // 验证通过,进行相关操作
            $name  = $validate->get('name');
            $email = $validate->get('email');
            $phone = $validate->get('phone');

            // ...

        } catch (ValidationFailedException $e) {
            // 验证未通过,输出错误信息
            $errors = $e->getErrors();
        }
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah $request->validate untuk mengesahkan data borang pengguna dan menggunakan try-catch untuk menangkap pengecualian ValidationFailedException. Apabila data borang yang diserahkan oleh pengguna tidak mematuhi peraturan UserValidator tersuai, ValidationFailedException akan dilemparkan Kami boleh mendapatkan maklumat ralat melalui kaedah $e->getErrors() dalam tangkapan.

3. Gesaan ralat

Apabila pengguna mengisi borang, jika ia tidak memenuhi peraturan UserValidator tersuai, gesaan ralat yang sepadan akan diberikan. Dalam rangka kerja Rebet, anda boleh menggunakan komponen gesaan ralat (Flash) untuk melaksanakan gesaan ralat, seperti yang ditunjukkan dalam kod berikut:

use RebetToolsUtilityArrays;
use RebetHttpSessionFlash;

class UserController
{
    public function register(Request $request)
    {
        try {
            $validate = $request->validate(UserValidator::class);

            // 验证通过,进行相关操作
            $name  = $validate->get('name');
            $email = $validate->get('email');
            $phone = $validate->get('phone');

            // ...

        } catch (ValidationFailedException $e) {
            // 验证未通过,输出错误信息
            $errors = $e->getErrors();

            $flash = new Flash();
            Arrays::each($errors, function ($field, $errors) use ($flash) {
                $flash->error($field, $errors[0]); // 错误提示
            });

            // 返回前一页并刷新页面
            return Response::redirect()->back()->refresh();
        }
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan komponen Flash untuk mengeluarkan gesaan ralat. Dalam blok cuba-tangkap, apabila pengesahan borang gagal, kami akan menggunakan kaedah $flash->error untuk memaparkan mesej ralat. Pada masa yang sama, gunakan komponen Ubah hala untuk kembali ke halaman sebelumnya dan muat semula halaman.

Ringkasan

Melalui pengenalan di atas, kami telah mempelajari cara menggunakan pengesahan borang dan gesaan ralat dalam rangka kerja Rebet. Melalui peraturan pengesahan tersuai, pengesahan data borang, gesaan ralat dan langkah lain, kami boleh dengan mudah mengesahkan data borang yang diserahkan oleh pengguna dan memberikan gesaan ralat, yang meningkatkan pengalaman pengguna aplikasi web dan juga meningkatkan kestabilan aplikasi web. dan keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pengesahan borang dan gesaan ralat dalam rangka kerja Rebet?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan