Actualmente estoy trabajando en alguna validación adicional en un formulario en la devolución de llamada beforeValidate()
del modelo.Modelo CakePHP-> invalidar no muestra error
Tengo el siguiente código:
function beforeValidate(){
$i = 0;
foreach($this->data['CapitalCategory'] as $capital_category){
if(!empty($capital_category['value'])){
$this->invalidate('CapitalCategory.'.$i.'.points', 'error!');
return false;
}
$i++;
}
return true;
}
I depurado todo, y lo hace return false si el valor está presente. ¡Pero luego, el formulario se vuelve a cargar y no se muestra ningún mensaje debajo de la entrada de puntos! Además, si depuro el validationErrors
, la matriz contiene el error que debe mostrarse. ¿Cuál podría ser el problema?
¡Agradecemos cualquier ayuda!
EDITAR
Esta es la forma en que estoy construyendo mis entradas:
echo $this->Form->input('CapitalCategory.'.$i.'.value', array('label' => $category['Category']['name'], 'type' => 'text'));
echo $this->Form->input('CapitalCategory.'.$i.'.points', array('label' => 'Puncte', 'type' => 'text'));
Creo que un problema podría ser el hecho de que estoy trabajando en CapitalModel en el que, además de algunos campos de la CapitalModel, he usado varios campos de su modelo relacionado, CapitalCategorieModel. ¿Podría ser este el problema de no vincular el error de validación al campo? Si es así, ¿cómo puedo resolverlo?
He editado mi pregunta. Gracias. – linkyndy
No he usado números en mis nombres de campo antes ... pero puede tratar de hacer que la segunda parte del nombre sea una cadena y no un número ... es decir, en lugar de ''CapitalCategory. '. $ I.'. Points ' ', ponga' 'CapitalCategory.F'. $ i. '. points'' .. reemplace en todo su código y avíseme qué sucede ... –
Necesito ese número para decirle a Cake que guarde registros de relaciones' hasMany '. .. Cuando se guarda el capital, el modelo CapitalCategory guarda un registro para cada CapitalCategory. [Number] .field. – linkyndy