Validação

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

RegraDescrição
requiredCampo obrigatório
emailValida formato de e-mail
min:NMínimo de N caracteres
max:NMáximo de N caracteres
intDeve ser inteiro
floatDeve ser decimal
domainValida 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":"..."}