Modelo: Validación automática
Las clases del modelo aceptan la definición de restricciones sobre sus atributos y relaciones, las cuales se verifican al llamar a los métodos save y validate, generando los respectivos errores. Los errores son accesibles mediante los métodos getErrors y getFieldErrors, además el método hasErrors se utiliza para saber si existen errores.Una posible definición de restricciones podría ser:
$this->constraints = array(
"nombre" => array(
Constraint::minLength(1),
Constraint::maxLength(30),
Constraint::blank(false)
),
"edad" => array(
Constraint::between(10,100)
),
"email" => array(
Constraint::email()
));
"nombre" => array(
Constraint::minLength(1),
Constraint::maxLength(30),
Constraint::blank(false)
),
"edad" => array(
Constraint::between(10,100)
),
"email" => array(
Constraint::email()
));
En el primer caso, el atributo nombre es de tipo TEXT, para este tipo de dato se pueden definir restricciones:
- minLength: restricción de tamaño mínimo para el string.
- maxLength: restricción de tamaño máximo para el string.
- blank: restricción que define si el string puede ser vacío o no.
El segundo atributo, edad, es un número al cual se puede
definir la restricción between que indica que el valor
del atributo debe estar entre los valores especificados.
El atributo email, es un string que debe tener el formato
válido de un email, por lo tanto se utiliza la restricción email para
validar su formato.
Nota: la restricción maxLength para atributos
de texto determina el tipo de la columna respectiva en la base de datos,
por ejemplo, si se utiliza un maxLength de 100, la columna
tendrá tipo VARCHAR(100), si se utiliza el valor 1000,
la columna tendrá tipo TEXT.
