Validación de campos
Exige un campo y comprueba su forma - ambos aplicados del lado del cliente para una experiencia fluida, y del lado del servidor porque nunca se puede confiar en el cliente.
Campos obligatorios
->validation_required($field, $minLength = null) impide guardar el formulario con el campo en blanco, exigiendo opcionalmente también una longitud mínima. Ambas comprobaciones se ejecutan del lado del cliente (retroalimentación instantánea) Y del lado del servidor (la aplicación real).
$xcrud->validation_required('lastName');
$xcrud->validation_required('password', 8);
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
$field | string | - | Campo que debe estar no vacío para guardar |
$minLength | ?int | null | Cuando se establece, el valor también debe tener al menos esta cantidad de caracteres |
Validación por patrón
->validation_pattern($field, $pattern) exige que el valor de un campo (cuando no está vacío) coincida con una expresión regular. Un campo vacío pasa una comprobación de patrón por sí solo - combínalo con ->validation_required() para también prohibir dejarlo en blanco.
$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('sku', '^[A-Z]{2}-\d{4}$');
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
$field | string | - | Campo a validar |
$pattern | string | - | Un atajo con nombre, o el cuerpo literal de una expresión regular sin delimitadores |
| Atajo con nombre | Coincide con |
|---|---|
email | Una forma simple usuario@host |
alpha | Solo letras |
alpha_numeric | Letras y dígitos |
alpha_dash | Letras, dígitos, guion bajo, guion |
numeric | Un número entero o decimal, opcionalmente negativo |
natural | Solo dígitos (un entero no negativo) |
url | Una URL http:// o https:// |
Por qué importa la aplicación del lado del servidor
La validación del lado del cliente es una cortesía - le da al visitante retroalimentación instantánea sin un viaje de ida y vuelta al servidor. No es un límite de seguridad: un cliente puede saltarse cualquier comprobación del lado del cliente simplemente llamando a la API REST directamente (por ejemplo, con curl o fetch()), evitando por completo el formulario y su JavaScript. Por eso ->validation_required() y ->validation_pattern() vuelven a ejecutar exactamente las mismas comprobaciones en el servidor antes de que una fila llegue siquiera a escribirse. Consulta la Referencia de la API REST para el endpoint sin procesar que protegen estas comprobaciones.
Uniéndolo todo
$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();