Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/08/2010, 02:25
ianmonge
 
Fecha de Ingreso: abril-2009
Ubicación: Barcelona
Mensajes: 9
Antigüedad: 15 años
Puntos: 0
Cómo validar un subformulario en Zend Framework?

Hola a todos,

Zend Framework ofrece el sistema de validadores para poder validar un elemento de un formulario. Extendiendo la clase Zend_Validate_Abstract se puede crear uno propio. Después, al elemento del formulario, se puede añadir el validador con el método ->addValidator() y ya lo tenemos todo.

Mi pregunta viene en el caso de tener un formulario que tiene un conjunto de subformularios, y hay que validar una característica del conjunto de subformularios. Pongo un ejemplo:

El formulario sirve para editar un equipo de futbol. Dentro del formulario, tengo un subformulario que contiene 23 jugadores (cada jugador representado con otro subformulario). El validador ha de comprobar que estén marcados 11 como titurales, ni más ni menos. La estructura del formulario sería algo así:

Equipo (Zend_Form)
Nombre (Zend_Form_Input)
Jugadores (Zend_Subform)
Jugador1 (Zend_Subform)
Nombre (Zend_Form_Input)
Titular (Zend_Form_Radio)
Jugador2 (Zend_Subform)
Nombre (Zend_Form_Input)
Titular (Zend_Form_Radio)
Jugador3 (Zend_Subform)
Nombre (Zend_Form_Input)
Titular (Zend_Form_Radio)
Jugador4 (Zend_Subform)
Nombre (Zend_Form_Input)
Titular (Zend_Form_Radio)
Jugador5 (Zend_Subform)
Nombre (Zend_Form_Input)
Titular (Zend_Form_Radio)
...
La solución provisional que he hecho es, crear un validador y sobreescribir el método isValid del subformulario Jugadores para ejecutar el método padre (parent::isValid()) y después mi validador, y comprobar los 11 jugadores titulares.

Alguien tiene una mejor idea, o otro planteamiento?