validator-docs
validator-docs copied to clipboard
Substituição de mensagens de erro
A lib está retornando que o CPF 29075 é invalido, quando o CPF na verdade está duplicado no banco de dados
'cpf' => ['required', 'cpf', Rule::unique('users')->whereNull('deleted_at')],
php: ^8.1 -> 8.1.12 laravel/framework: ^9.19 -> 9.31.0 geekcom/validator-docs: ^3.7 -> 3.7.1
$validationRules = [
'name' => 'required',
'cpf' => ['required', 'cpf', Rule::unique('users')->whereNull('deleted_at')],
'cell_phone' => 'required|regex:/\([0-9]{2}\) 9[0-9]{2}\.[0-9]{3}\.[0-9]{3}/',
'birth_date' => 'required|date_format:d/m/Y',
'email' => [
'required',
'email:rfc,dns,spoof,filter',
function ($attribute, $value, $fail) {
$exists = User::where('email', Str::lower($value))
->whereNull('deleted_at')
->exists();
if ($exists) {
$fail("O {$attribute} informado, já está em uso!");
}
},
],
'password' => $this->storePasswordRules(),
];
$validator = Validator::make(
$request->all(),
$validationRules,
['cell_phone.regex' => 'O campo celular não é valido!']
);
$validator->setAttributeNames(
[
'cpf' => 'Cadastro de Pessoa Física',
'name' => 'nome',
'email' => 'e-mail',
'password' => 'senha',
'cell_phone' => 'celular',
'birth_date' => 'data de nascimento',
]
);
if ($validator->fails()) {
return $this->response(
$validator->errors()->toArray(),
'Erro',
HttpStatusCodeEnum::UnprocessableContent
);
}
https://github.com/geekcom/validator-docs/blob/19ebbc9452aeb6fd88c6770ca3bc72b4e094263d/src/validator-docs/ValidatorProvider.php#L27-L34
Erro aconte pois ao chamar o método make do validator ele chama o metodo resolve (referencia acima) as mesagens são substituidadas o por que que as mensagens são substituidas eu não entendi, já que se comentar o código citado resolve o problema.
PS. Vou abrir outra issue para sugerir algumas mudanças
O erro tambem ocorre quando a validação é no formato a seguir
$this->validate(
$request,
$validationRules,
['cell_phone.regex' => 'O campo celular não é valido!'],
[
'cpf' => 'CPF (Cadastro de Pessoa Física)',
'name' => 'nome',
'email' => 'e-mail',
'password' => 'senha',
'cell_phone' => 'celular',
'birth_date' => 'data de nascimento',
]
);
Amigo, alguma atualização sobre ? Qualquer mensagem do validador sai com CPF é Invalido quando utiliza a biblioteca