zend framework - Zend File Upload y Element Decorators
zend-framework zend-form (1)
Tengo el problema de que el siguiente Formulario Zend arroja un error. El problema es el elemento "file" y el uso de setElementDecorators.
class Products_AddForm extends Zend_Form
{
function init() {
// other form elements...
$uploadElement = new Zend_Form_Element_File(''Excel'');
$uploadElement->setLabel(''Excel'');
$this->addElement($uploadElement);
$this->setElementDecorators(array(
''ViewHelper'',
''Errors'',
array(array(''data'' => ''HtmlTag''), array(''tag'' => ''td'')),
array(''Label'', array(''tag'' => ''th'')),
array(array(''row'' => ''HtmlTag''), array(''tag'' => ''tr''))
));
}
}
Esto arroja un error.
(Warning: Exception caught by form: No file decorator found... unable to render file element Stack Trace: #0 )
Agregar $uploadElement->addDecorator(''File'');
al final, después de que SetElementDecorators
funcione, ¡pero esto me dará el elemento de archivo dos veces!
¿Alguien puede ayudar, por favor?
TIA Matt
El elemento Archivo requiere su propio decorador - Zend_Form_Decorator_File.
$this->setElementDecorators(array(
''File'',
''Errors'',
array(array(''data'' => ''HtmlTag''), array(''tag'' => ''td'')),
array(''Label'', array(''tag'' => ''th'')),
array(array(''row'' => ''HtmlTag''), array(''tag'' => ''tr''))
));
[editar]
Acabo de notar que también está usando otros elementos de formulario.
Después de su código original, agregue:
$this->getElement(''Excel'')->setDecorators(
array(
''File'',
''Errors'',
array(array(''data'' => ''HtmlTag''), array(''tag'' => ''td'')),
array(''Label'', array(''tag'' => ''th'')),
array(array(''row'' => ''HtmlTag''), array(''tag'' => ''tr''))
)
);
De esta forma, ViewHelper se agrega a todos los demás elementos y, en su lugar, se usa el archivo de elementos de archivo.