geekcom / validator-docs

Validação de CPF, CNPJ, CNH, NIS, DDD, Título Eleitoral e Cartão Nacional de Saúde com Laravel.
MIT License
558 stars 96 forks source link
cnh cnpj cns cpf cpf-cnpj hacktoberfest laravel laravel-package laravel-validation laravel10 nis passaporte tituloeleitor validation validation-library

Validator Docs - Brasil

Biblioteca PHP para validação de documentos do Brasil usando Laravel

Build Status Coverage Status PHPStan Monthly Downloads Total Downloads License

Por favor, considere fazer uma doação, apoie nossas atividades

Para a versão legada compatível com Laravel 5 consulte o branch https://github.com/geekcom/validator-docs/tree/5.x.x

Recursos

Instalação

No arquivo composer.json, adicione validator-docs como dependência do seu projeto:

"require": {
    "geekcom/validator-docs" : "^3.9"
 },

Depois execute:

composer install

Ou simplesmente execute o comando:

composer require geekcom/validator-docs

Testes

Para executar os testes, basta fazer o seguinte:


Como usar a biblioteca

Agora que os métodos de validação validator-docs Brasil estão disponíveis, será possível usar da seguinte forma:

$this->validate($request, [
    'cpf' => 'required|cpf',
]);
$this->validate($request, [
    'cnpj' => 'required|cnpj',
]);
$this->validate($request, [
    'cnh' => 'required|cnh',
]);
$this->validate($request, [
    'passaporte' => 'required|passaporte',
]);
$this->validate($request, [
    'titulo_eleitor' => 'required|titulo_eleitor',
]);
$this->validate($request, [
    'cpf_cnpj' => 'required|cpf_cnpj',
]);
$this->validate($request, [
    'inscricao_estadual' => 'required|inscricao_estadual:UF',
]);
$this->validate($request, [
    'nis' => 'required|nis',
]);
$this->validate($request, [
    'cns' => 'required|cns',
]);
$this->validate($request, [
    'certidao' => 'required|certidao',
]);
$this->validate($request, [
    'renavam' => 'required|renavam',
]);
$this->validate($request, [
    'placa' => 'required|placa',
]);
$this->validate($request, [
    'ddd' => 'required|ddd',
]);
$this->validate($request, [
    'formato_cnpj' => 'required|formato_cnpj',
]);
$this->validate($request, [
    'formato_cpf' => 'required|formato_cpf',
]);
$this->validate($request, [
    'formato_cpf_cnpj' => 'required|formato_cpf_cnpj',
]);
$this->validate($request, [
    'formato_nis' => 'required|formato_nis',
]);
$this->validate($request, [
    'formato_certidao' => 'required|formato_certidao',
]);

Combinando validação e formato

No exemplo abaixo, fazemos um teste onde verificamos a formatação e a validade de um CPF ou CNPJ, para os casos onde a informação deve ser salva em um mesmo atributo:

$this->validate($request, [
    'cpf_or_cnpj' => 'formato_cpf_cnpj|cpf_cnpj',
]);

Exemplo de uso em um controller

Método de validação de exemplo em um controller com todas as possibilidades de validação

public function store(Request $request)
{
    $data = $request->all();

    $this->validate($request, [
        'cpf' => 'required|cpf',
        'cnpj' => 'required|cnpj',
        'cnh' => 'required|cnh',
        'titulo_eleitor' => 'required|titulo_eleitor',
        'nis' => 'required|nis',
        'cns' => 'required|cns',
        'ddd' => 'required|ddd',
        'renavam' => 'required|renavam',
        'placa' => 'required|placa',
        'certidao' => 'required|certidao',
        'inscricao_estadual' => 'required|inscricao_estadual:SP',
        'passaporte' => 'required|passaporte',
    ]);

    dd($data);
}

Observe que para validar uma inscrição estadual é necessário informar a UF


Geradores de documentos para testes

Fique a vontade para contribuir de qualquer forma.

Caso tenha alguma dúvida ou encontre algum bug, abra uma issue ou pesquise por issues antigas.

Contribuidores

Contribuições de qualquer tipo são bem-vindas!