tutorial plantillas para cake aprender php validation cakephp model cakephp-1.3

plantillas - cakephp one form, multiple models, no muestra los mensajes de validación de un modelo



plantillas para cakephp (2)

Los campos de hasMany model deben ser como una matriz ( cuando se combina con el modelo principal ), ver .0 agregado entre los nombres de los campos

echo $this->Form->input(''Identity.0.name''); echo $this->Form->input(''Identity.0.surname''); ... echo $this->Form->input(''Identity.0.email'');

Tengo un formulario de registro y estoy creando un registro en las tablas de Usuario e Identidad (un usuario tiene muchas identidades)

la forma se ve así

<?php echo $this->Form->create(''User'');?> <fieldset> <legend><?php __(''Register''); ?></legend> <?php echo $this->Form->input(''Identity.name''); echo $this->Form->input(''Identity.surname''); echo $this->Form->input(''User.username''); echo $this->Form->input(''User.pass''); echo $this->Form->input(''User.pass_confirm'', array(''type'' => ''password'')); echo $this->Form->input(''Identity.email''); ?> </fieldset> <?php echo $this->Form->end(__(''Submit'', true));?>

Obtengo todos los mensajes de error de validación para los campos User.* Pero los campos Identity.* Se muestran sin mensajes.

captura de pantalla

reglas de validación:

Identidad:

var $validate = array( ''name'' => array( ''notempty'' => array( ''rule'' => ''notempty'', ''required'' => true, ''message'' => ''Your name is required.'' ) ), ''surname'' => array( ''notempty'' => array( ''rule'' => ''notempty'', ''required'' => true, ''message'' => ''Your surname is required.'' ) ), ''email'' => array( ''validateEmail'' => array( ''rule'' => ''validateEmail'', ''required'' => true, ''message'' => ''The email seems invalid.'' ), ''notempty'' => array( ''rule'' => ''notempty'', ''message'' => ''You have to enter an email address.'' ) ), );

Usuario:

var $validate = array( ''pass'' => array( ''required'' => array( ''rule'' => array(''custom'',''/^.*[0-9].*$/i''), ''message''=>''Password must contain numbers''), ''length'' => array( ''rule'' => array( ''minLength'',8), ''message'' => ''Password must be at least 8 characters long'') ), ''pass_confirm'' => array( ''required'' => array( ''rule'' => ''notempty'', ''message'' => ''You have to confirm the password'' ), ''length'' => array( ''rule'' => ''validatePassword'', ''message''=>''Your passwords don/'t match!'' ) ), ''username'' => array( ''unique'' => array( ''rule'' => ''validateUniqueUsername'', ''message'' => ''Username is already taken, please choose a different one.'' ), ''notempty'' => array( ''rule'' => ''notempty'', ''message'' => ''You have to choose a username.'' ) ), );


Una respuesta que encontré fue en esta página mucho sobre el mismo problema. La solución fue agregar el atributo de validar a saveAll

if($this->Member->saveAll($this->data, array(''validate''=>''only''))){ //your custom save function }