Closed
Description
Veja um caso de duas inputs que são aplicadas a regra de validação para CNH:
$cnh_valido = '43872153406';
$cnh_invalido = 'ZZZ43872153406'
Ambos passam na validação, pois a chamada do método sanitize:
public function sanitize($value): string
{
return empty($value) ? "" : preg_replace('/[^\d]/', '', $value);
}
O sanitize altera o valor antes da valiação, porém, como ele não altera o próprio request (e nem faz sentido), a aplicação identifica como válido um valor que na verdade é inválido.
Testei com CNH, mas com certeza deve ocorrer em todas as Rules que também utilizam o sanitize.
A correção é simples, a validação deve ser feita em cima da input bruta e não deve haver nenhuma transformação antes da validação.