aluisio-pires / pt-br-validator
一个包含巴西格式验证的库,用于Laravel
11.0.0
2024-03-13 17:43 UTC
Requires
- illuminate/support: ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- orchestra/testbench: ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- phpunit/phpunit: ^8.3 || ^9.0 || ^10.5
README
此库为Laravel添加了巴西验证,如CPF、CNPJ、车牌、CEP、电话、手机等。
🇧🇷🇧🇷🇧🇷
版本
安装
导航到您的项目文件夹,例如
cd /etc/www/projeto
然后执行
composer require laravellegends/pt-br-validator
如果您正在使用此库的版本早于 5.2
,您需要在 config/app.php
中添加 provider
'providers' => [ // ... outros pacotes LaravelLegends\PtBrValidator\ValidatorProvider::class ]
现在,要使用验证,只需按照 Laravel
的标准流程进行。
区别在于可以使用以下验证方法
测试 PtBrValidator 的验证
这样,可以进行简单的测试
$validator = \Validator::make( ['telefone' => '(77)9999-3333'], ['telefone' => 'required|telefone_com_ddd'] ); dd($validator->fails());
您也可以通过 Illuminate\Http\Request
的实例使用它,通过 validate
方法。
查看
use Illuminate\Http\Request; // URL: /testando?telefone=3455-1222 Route::get('testando', function (Request $request) { try{ $dados = $request->validate([ 'telefone' => 'required|telefone', // outras validações aqui ]); } catch (\Illuminate\Validation\ValidationException $e) { dd($e->errors()); } });
自定义消息
上述所有验证都包含默认验证消息,但可以通过使用 Validator::make
的第三个参数来更改这一点。此参数应该是一个数组,其中索引是验证名称,值是相应的消息。
例如
Validator::make($valor, $regras, ['celular_com_ddd' => 'O campo :attribute não é um celular'])
或通过您的请求的 messages
方法创建,该请求是通过 php artisan make:request
命令创建的。
public function messages() { return [ 'campo.telefone' => 'Telefone não válido!' ]; }
单独访问规则
如果您需要单独访问某个规则,可以访问以下类
\LaravelLegends\PtBrValidator\Rules\Celular::class
\LaravelLegends\PtBrValidator\Rules\CelularComDdd::class
\LaravelLegends\PtBrValidator\Rules\CelularComCodigo::class
\LaravelLegends\PtBrValidator\Rules\Cnh::class
\LaravelLegends\PtBrValidator\Rules\Cnpj::class
\LaravelLegends\PtBrValidator\Rules\Cpf::class
\LaravelLegends\PtBrValidator\Rules\Cns::class
\LaravelLegends\PtBrValidator\Rules\FormatoCnpj::class
\LaravelLegends\PtBrValidator\Rules\FormatoCpf::class
\LaravelLegends\PtBrValidator\Rules\Telefone::class
\LaravelLegends\PtBrValidator\Rules\TelefoneComDdd::class
\LaravelLegends\PtBrValidator\Rules\TelefoneComCodigo::class
\LaravelLegends\PtBrValidator\Rules\FormatoCep::class
\LaravelLegends\PtBrValidator\Rules\FormatoPlacaDeVeiculo::class
\LaravelLegends\PtBrValidator\Rules\FormatoPis::class
\LaravelLegends\PtBrValidator\Rules\Pis::class
\LaravelLegends\PtBrValidator\Rules\CpfOuCnpj::class
\LaravelLegends\PtBrValidator\Rules\FormatoCpfOuCnpj::class
\LaravelLegends\PtBrValidator\Rules\Uf::class
例如,如果您想验证 CPF 字段的格式,您可以按照以下方式使用 LaravelLegends\PtBrValidator\Rules\FormatoCpf
类
use Illuminate\Http\Request; use LaravelLegends\PtBrValidator\Rules\FormatoCpf; // testando?cpf=valor_invalido Route::get('testando', function (Request $request) { try{ $dados = $request->validate([ 'cpf' => ['required', new FormatoCpf] // outras validações aqui ]); } catch (\Illuminate\Validation\ValidationException $e) { dd($e->errors()); } });
变更日志
- 9.1.0 - 添加了
cns
(国家健康卡) 验证。 - 8.0.3 - 添加了
uf
验证。 - 8.0.2 - 添加了
cpf_ou_cnpj
验证。 - 5.2.1 - 添加了
cpf_ou_cnpj
验证。
建议
Eloquent Filter:这个库是为了创建REST API的搜索过滤而开发的。使用这个库,您可以节省大量的代码行,并保持Laravel应用程序中搜索过滤的一致性。