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?