geekcom / validator-docs

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Qdo o campo não é requerido e vem em branco gera erro

dimasf-dev opened this issue · comments

Olá, na minha aplicação exijo o cpf/cnpj, apenas se um outro determinado campo tiver um valor específico, e nesse caso uso
dessa forma:

'cpf_cnpj' => 'required_if:tipo_cobranca,1,2|cpf_cnpj'

O problema é que ele está validando com o campo em branco.

No caso eu acredito que a validação tenha de ocorrer apenas se tiver informação

Para verificar a formação também dá problemas, mas no caso de adicionar formato_cpf_cnpj, gera exceção na aplicação

Acredito que o PR-112 pode resolver este problema. @dimasf-dev você chegou a debugar na lib se a validação chegava a este ponto que o PR propõe de alteração?

@dimasf-dev pode atualizar o pacote para validar que o erro não está mais ocorrendo?

Desculpe, reportei muito rápido e faltou detalhes, a validação normal não está mais dando problemas.
Porém a validação de formato sim, segue o print referente ao erro qdo o campo não é requerido e tem a diretiva de validação de formato.

image

@dimasf-dev se for possível, add o trecho do código e o log do erro para que tenhamos uma visão mais detalhada do problema.

Olá segue o trecho de código q gera o erro.

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class testController extends Controller
{
public function testValidade(Request $request)
{

    $this->validate($request, [
        'cpf' => 'cpf|formato_cpf', // caso não seja enviadado valor no campo gera o erro q reportei anteriormente (formato_cpf)
        'cnpj' => 'cnpj',
    ]);        
    
    return view('teste');
}

}

O que, ao meu ver, faz total sentido @dimasf-dev . Quando você valida usando 'cpf' => 'cpf|formato_cpf' você está informando ao validador que um valor está sendo passado para ele, quando na verdade você não está passando dado para ser validado.

Experimenta utilizar esta validação da forma como está descrito no readme:

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

Esta é a forma recomendada para o caso que validamos cpf e/ou cnpj. Vou considerar essa issue como fechada, mas se o erro continuar, peço que reabra.

Não posso por esse campo como requerido, mas quando o usuário informa, preciso validar formato e valor.

que seria esse caso: 'cpf' => 'cpf|formato_cpf'

pra corrigir isso é só na funçao formato_cpf verificar se feio valor, se não tem valor nem testa.

Ah Dimas, legal que você já tem a solução.

Estamos esperando seu PR para essa validação.