4. Cambios en la validación de los datos
La validación de datos de CakePHP 1.2 es más poderosa que la de CakePHP 1.1. Ahora hay muchas más posibilidades, aunque también se pueden seguir usando las constantes de validación VALID_NOT_EMPTY, VALID_EMAIL, VALID_NUMBER y VALID_YEAR de CakePHP 1.1. En este post de Hospedaxes explican cómo definir reglas de validación en CakePHP 1.2.
Mi modelo Categoria de CakePHP 1.1, que utilizaba la constante de validación VALID_NOT_EMPTY, era así:
class Categoria extends AppModel{
var $name = 'Categoria';
var $displayField = 'nombre';
var $validate = array( 'nombre'=>VALID_NOT_EMPTY,
);
var $hasMany = array('Empresa'=>array('className'=>'Empresa'));
}
Y en CakePHP 1.2 quedo así:
class Categoria extends AppModel{
var $name = 'Categoria';
var $displayField = 'nombre';
var $validate = array(
'nombre' => array(
'rule' => array('minLength', 1),
'message' => 'El nombre es obligatorio'
)
);
var $hasMany = array('Empresa'=>array('className'=>'Empresa'));
}
Por otra parte, el uso del método validates de la clase Model, que comprueba si los campos de un registro satisfacen las reglas de validación que se definen en el modelo, también ha cambiado. Esto lo explican aquí.
Por lo tanto, el método introducir_datos de mi controlador EmpresasController de CakePHP 1.1, que utilizaba el método validates, y era así:
if ($this->Empresa->validates($this->data)){
queda finalmente así en CakePHP 1.2:
$this->Empresa->set($this->data);
if ($this->Empresa->validates()){
Archivado bajo: Curiosea en el diario de jordicakephp