Cuando creamos un modelo tenemos la posibilidad de introducir validación de datos. Se indica con la variable $validate:
class User extends AppModel { var $name = 'User'; var $validate = array( 'login' => 'alphaNumeric', 'email' => 'email', 'born' => 'date' ); }
Las reglas de validación pueden ser complejas:
class User extends AppModel { var $name = 'User'; var $validate = array( 'login' => array( 'alphaNumeric' => array( 'rule' => 'alphaNumeric', 'required' => true, 'message' => 'Sólo letras y números' ), 'between' => array( 'rule' => array('between', 5, 15), 'message' => 'Entre 5 y 15 caracteres' ) ), 'password' => array( 'rule' => array('minLength', '8'), 'message' => 'Largo mínimo de 8 caracteres' ), 'email' => 'email', 'born' => array( 'rule' => 'date', 'message' => 'Ingrese una fecha válida', 'allowEmpty' => true ) ); }
El formato general es el siguiente:
var $validate = array( 'fieldName1' => array( 'rule' => 'ruleName', // ó: array('ruleName', 'param1', 'param2' ...) 'required' => true, 'allowEmpty' => false, 'on' => 'create', // ó: 'update' 'message' => 'Su mensaje de error' ) );
Cada campo puede tener más de una regla:
var $validate = array( 'login' => array( 'alphanumeric' => array( 'rule' => 'alphaNumeric', 'message' => 'Se permiten sólo letras y números', 'last' => true ), 'minlength' => array( 'rule' => array('minLength', '8'), 'message' => 'Largo mínimo de 8 caracteres' ), ) );
Una lista de todas las reglas incorporadas en el núcleo se puede encontrar aquí: