/validator-docs

Validação de CPF, CNPJ, CNH, NIS, Título Eleitoral e Cartão Nacional de Saúde com Laravel.

Primary LanguagePHPMIT LicenseMIT

LaraValidator Docs - Brasil

Validação de documentos do Brasil usando Laravel 6/7

Build Status Coverage Status PHPStan Total Downloads License

All Contributors

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

Biblioteca Laravel para validação de CPF, CNPJ, CPF/CNPJ (quando salvos no mesmo atributo), CNH, PIS/PASEP/NIT/NIS, Título de Eleitor, Cartão Nacional de Saúde(CNS) e Certidões(nascimento/casamento/óbito).

Instalação

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

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

Depois execute:

composer install

Ou simplesmente execute o comando:

composer require geekcom/validator-docs

Como usar - Validações disponíveis

Agora, você terá os métodos de validação validator docs Brasil disponíveis.

  • cpf - Verifica se um CPF é valido.
$this->validate($request, [
    'cpf' => 'required|cpf',
]);
  • cnpj - Verifica se um CNPJ é valido.
$this->validate($request, [
    'cnpj' => 'required|cnpj',
]);
  • cnh - Verifica se uma CNH (Carteira Nacional de Habilitação) é válida.
$this->validate($request, [
    'cnh' => 'required|cnh',
]);
  • titulo_eleitor - Verifica se um Título de Eleitor é válido.
$this->validate($request, [
    'titulo_eleitor' => 'required|titulo_eleitor',
]);
  • cpf_cnpj - Verifica se um CPF ou CNPJ é válido.
$this->validate($request, [
    'cpf_cnpj' => 'required|cpf_cnpj',
]);
  • nis - Verifica se um PIS/PASEP/NIT/NIS é válido.
$this->validate($request, [
    'nis' => 'required|nis',
]);
  • cns - Verifica se um Cartão Nciona de Saúde (CNS) é válido.
$this->validate($request, [
    'cns' => 'required|cns',
]);
  • certidao - Verifica se uma certidão de nascimento/casamento/óbito é válida.
$this->validate($request, [
    'certidao' => 'required|certidao',
]);
  • formato_cnpj - Verifica se o formato de um CNPJ é válida. ( 99.999.999/9999-99 )
$this->validate($request, [
    'formato_cnpj' => 'required|formato_cnpj',
]);
  • formato_cpf - Verifica se o formato de um CPF é válido. ( 999.999.999-99 )
$this->validate($request, [
    'formato_cpf' => 'required|formato_cpf',
]);
  • formato_cpf_cnpj - Verifica se o formato de um CPF ou um CNPJ é válido. ( 999.999.999-99 ) ou ( 99.999.999/9999-99 )
$this->validate($request, [
    'formato_cpf_cnpj' => 'required|formato_cpf_cnpj',
]);
  • formato_nis - Verifica se o formato de um PIS/PASEP/NIT/NIS é válido. ( 999.99999-99.9 )
$this->validate($request, [
    'formato_nis' => 'required|formato_nis',
]);
  • formato_certidao - Verifica se o formato de uma certidão é válida. ( 99999.99.99.9999.9.99999.999.9999999-99 ou 99999 99 99 9999 9 99999 999 9999999 99)
$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',
    ]);

    dd($data);
}

Geradores de documentos para testes

Fique a vontade para contribuir fazendo um fork.

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

Contribuidores ✨

Nosso obrigado vai pra essas pessoas incríveis (emoji key):


Daniel Rodrigues

🚇 🚧 💻

André Rodrigues Gomes Costa

💻

Humberto Lidio Antonelli

💻

Evandro Kondrat

💻

Victor Anjos

💻

Yves Cabral

💻

setefocos

💻

Este projeto segue a especificação all-contributors. Contribuições de qualquer tipo são bem-vindas!