Validação de Formulários
Validação de dados com regras encadeadas e suporte a AJAX.
Uso Básico
use Blumiga\formvalidation\FormValidation;
$v = new FormValidation();
$v->rules([
'nome' => 'required|min:3|max:50',
'email' => 'required|email',
'idade' => 'required|int',
]);
if ($v->validate()) {
// Dados válidos
} else {
$errors = $v->errors();
} Regras Disponíveis
| Regra | Descrição |
|---|---|
required | Campo obrigatório |
email | Valida formato de e-mail |
min:N | Mínimo de N caracteres |
max:N | Máximo de N caracteres |
int | Deve ser inteiro |
float | Deve ser decimal |
domain | Valida domínio |
Validação AJAX (Tempo Real)
O FormValidation inclui JavaScript para validação ao vivo:
// View
echo FormValidation::form('POST', '/validation');
echo '<input name="email" formvalidation-live="input">';
echo FormValidation::dataError('fv-error', 'email');
echo FormValidation::endForm();
echo FormValidation::dataSuccess('fv-success');
echo FormValidation::scripts();
// Controller (AJAX)
$isAjax = ($_SERVER['HTTP_X_REQUESTED_WITH'] ?? '') === 'XMLHttpRequest';
if ($isAjax) {
if (inputPOST('_formvalidation_field')) {
$v->check(inputPOST('_formvalidation_field'));
} elseif ($v->validate()) {
json(['success' => 'OK!']);
} else {
json(['errors' => $v->errors()]);
}
return;
} Validação de Campo Único
$v->check('email'); // Valida apenas o campo 'email'
// Retorna JSON: {"field":"email","error":"..."}