Tengo una forma básica de usuario que estoy de subclases para cada caso de uso, es decir, registrar, editar, etc.Cómo utilizar Zend_Form-> createElement()
Algunos elementos del formulario son comunes a todos los casos de uso y para éstos Estoy usando la forma como una fábrica de elementos, por ejemplo $ this-> addElement ('text', 'first_name', array (...)). Eso funciona bien
Para los elementos que solo se requieren en algunos casos de uso, los estoy creando en la clase de formulario base, pero no los estoy agregando, p. Ej. $ this-> createElement ('text', 'id', array (...)). Cuando llego a la subclase, es cuando realmente agrego estos elementos opcionales.
Ahora, pensé que en la subclase que sería capaz de simplemente agregar el elemento utilizando:
$this->addElement($this->getElement('id'));
O
$this->addElement($this->id);
Pero ese no es el caso. Recibo una excepción que dice que estoy tratando de agregar elemento (NULO).
La única manera en que puedo obtener el resultado deseado es asignar específicamente el elemento create a una variable miembro, y luego usar ese nombre de variable.
p. Ej. En forma de base:
$this->id = $this->createElement('text', 'id', array(...));
Luego, en la clase substitución:
$this->addElement($this->id);
Me parece que esto debería producir un conflicto de nombres variables. Si createElement no nombra mi elemento 'id', ¿qué nombre le da?
EDITAR
estoy usando el init() de los padres y las clases hijas, e init del niño() llama a init parent() como su primera tarea.
Gracias Marcin, tenía razón, la segunda asignación no es necesaria. Cuando volví y miré mis subformularios desde el principio del día, también tenían los elementos opcionales. –