Я также сталкивался с этими типами проблем, но, наконец, я настроил Zend-форму для элемента file и других элементов ввода.
Используйте следующий код для применения декоратора файлов с другими элементами в форме Zend.
<?php
public function init()
{
// Set the method for the display form to POST
$this->setMethod('post');
$this->setElementDecorators(array(
'ViewHelper',
array('HtmlTag',array('tag' =>'div' ,'class'=>'field')),
array('Label',array('tag' =>'div','class'=>'label')),
));
// Add an email element
$this->addElement('text','name',array('label'=>'Name:',
'required'=>true,
$this->addElement('text','username',array('label'=>'User Name:','id'=>'user_name',
'required'=>true,
));
$this->addElement('password','password',array('label'=>'Password:',
'required'=>true,
));
$this->addElement('password','cpassword',array('label'=>'Password Again:',
'required'=>true,
));
$this->addElement('text','phone',array('label'=>'Phone:',
'required'=>true,
));
$this->addElement('text', 'email', array(
'label' => 'Email:',
'value' =>'test',
));
$this->addElement('file', 'photo', array(
'label' => 'Profile Photo:',
'decorators' =>array('file',array('HtmlTag',array('tag'=>'div','class'=>'field'))
,array('Label',array('tag'=>'div','class'=>'label')))
));
$this->addElement('submit', 'save',array('label'=>'Register Me','class'=>'submitbtn','style'=>'margin-left:150px;'));
}
?>
Я надеюсь, что это будет нормально работать