Validazione dei campi
Rendi un campo obbligatorio e verificane la forma - entrambi applicati lato client per un'esperienza fluida, e lato server perché il client non può mai essere considerato affidabile.
Campi obbligatori
->validation_required($field, $minLength = null) vieta di salvare il form con il campo lasciato in bianco, richiedendo opzionalmente anche una lunghezza minima. Entrambi i controlli vengono eseguiti lato client (feedback istantaneo) E lato server (l'applicazione effettiva).
$xcrud->validation_required('lastName');
$xcrud->validation_required('password', 8);
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
$field | string | - | Campo che deve essere non vuoto per poter salvare |
$minLength | ?int | null | Se impostato, il valore deve avere almeno questo numero di caratteri |
Validazione tramite pattern
->validation_pattern($field, $pattern) richiede che il valore di un campo (quando non vuoto) corrisponda a una regex. Un campo vuoto supera da solo il controllo del pattern - abbinalo a ->validation_required() per vietare anche di lasciarlo in bianco.
$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('sku', '^[A-Z]{2}-\d{4}$');
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
$field | string | - | Campo da validare |
$pattern | string | - | Una scorciatoia nominata, oppure il corpo letterale di una regex senza delimitatori |
| Scorciatoia nominata | Corrisponde a |
|---|---|
email | Una semplice forma utente@host |
alpha | Solo lettere |
alpha_numeric | Lettere e cifre |
alpha_dash | Lettere, cifre, underscore, trattino |
numeric | Un numero intero o decimale, eventualmente negativo |
natural | Solo cifre (un intero non negativo) |
url | Un URL http:// o https:// |
Perché l'applicazione lato server è importante
La validazione lato client è una cortesia - offre a un visitatore un feedback istantaneo senza un round trip. Non è un confine di sicurezza: un client può bypassare ogni controllo lato client semplicemente chiamando direttamente la REST API (ad es. con curl o fetch()), saltando del tutto il form e il suo JavaScript. Per questo ->validation_required() e ->validation_pattern() rieseguono entrambi esattamente gli stessi controlli sul server prima che una riga venga mai scritta. Vedi la Guida di riferimento alla REST API per l'endpoint grezzo che questi controlli proteggono.
Mettendo tutto insieme
$xcrud = Xcrud::get_instance();
$xcrud->table('employees');
$xcrud->route('employees');
$xcrud->validation_required('lastName');
$xcrud->validation_required('firstName');
$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('extension', 'alpha_numeric');
$xcrud->render();