Semasa proses pembangunan Laravel, dalam keadaan biasa, kami akan menggunakan peraturan pengesahan lalai yang disediakan oleh rangka kerja untuk mengesahkan data yang dimasukkan pengguna, tetapi kadangkala kami perlu menyesuaikan beberapa peraturan pengesahan khusus untuk memenuhi keperluan perniagaan. Artikel ini akan memperkenalkan cara menyesuaikan peraturan pengesahan Cina dalam Laravel dan memberikan contoh kod khusus.
Peraturan pengesahan Laravel semuanya dilaksanakan melalui kelas Pengesah. Kelas Pengesah menyediakan satu siri kaedah untuk mengesahkan peraturan Kami boleh melaksanakan peraturan pengesahan tersuai dengan mewarisi kelas Pengesah dan menambahkan kaedah peraturan tersuai.
Pertama, kami perlu mencipta Penyedia Perkhidmatan untuk mendaftarkan peraturan pengesahan tersuai kami. Jalankan arahan berikut dalam baris arahan untuk mencipta ServiceProvider baharu:
php artisan make:provider CustomValidationRulesServiceProvider
Kemudian cari fail CustomValidationRulesServiceProvider.php
dalam direktori app/Providers
, buka fail dan pilih Daftarkan peraturan pengesahan tersuai kami dalam kaedah >boot: app/Providers
目录下找到CustomValidationRulesServiceProvider.php
文件,打开文件并在boot
方法中注册我们的自定义验证规则:
<?php namespace AppProviders; use IlluminateSupportServiceProvider; use IlluminateSupportFacadesValidator; class CustomValidationRulesServiceProvider extends ServiceProvider { public function boot() { Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) { // 自定义验证规则的具体逻辑,这里可以根据业务需求编写验证逻辑 return $value === 'custom_value'; }); } public function register() { // } }
在上面的代码中,我们定义了一个名为custom_rule
的自定义验证规则,并在闭包函数中编写了验证逻辑。在这里,我们只是简单地判断输入值是否等于custom_value
,实际业务中可以根据需要进行更复杂的逻辑判断。
接着,我们需要在app/Providers/AppServiceProvider.php
中注册我们创建的ServiceProvider。在AppServiceProvider
的boot
方法中使用app()->register()
方法注册我们的自定义ServiceProvider:
public function boot() { $this->app->register(CustomValidationRulesServiceProvider::class); }
现在我们已经创建并注册了自定义验证规则,接下来就可以在表单验证时使用我们的自定义规则了。例如,我们在appHttpControllersUserController.php
中编写一个登录表单验证的方法:
public function login(Request $request) { $validatedData = $request->validate([ 'username' => 'required', 'password' => 'required|min:6|custom_rule', // 使用自定义规则 ]); // 其他处理逻辑 }
在上面的代码中,我们在密码字段的验证规则中添加了我们自定义的规则custom_rule
rrreee
custom_rule
dan menggunakannya dalam fungsi penutupan Logik pengesahan ditulis dalam . Di sini, kami hanya menilai sama ada nilai input adalah sama dengan custom_value
Dalam perniagaan sebenar, pertimbangan logik yang lebih kompleks boleh dibuat mengikut keperluan. 3. Daftar peraturan pengesahan tersuai🎜🎜Seterusnya, kami perlu mendaftarkan ServiceProvider yang kami buat dalam app/Providers/AppServiceProvider.php
. Gunakan kaedah app()->register()
dalam kaedah boot
AppServiceProvider
untuk mendaftarkan ServiceProvider tersuai kami: 🎜rrreee🎜4. Menggunakan peraturan tersuai dalam peraturan pengesahan🎜🎜Sekarang kami telah mencipta dan mendaftarkan peraturan pengesahan tersuai, kami boleh menggunakan peraturan tersuai kami dalam pengesahan borang. Sebagai contoh, kami menulis kaedah pengesahan borang log masuk dalam appHttpControllersUserController.php
: 🎜rrreee🎜Dalam kod di atas, kami menambahkan peraturan tersuai kami Atas ialah kandungan terperinci Petua Praktikal: Menyesuaikan Peraturan Pengesahan Bahasa Cina dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!