我正在创建这样的表单:
UploadFiale.php
<?php
class Form_UploadFile extends Zend_Form {
public function __construct( $options = null ) {
parent::__construct( $options );
$this->setMethod('post');
$elements = array();
// photo
$element = new Zend_Form_Element_File('photo');
$element->setLabel('Photo');
$element->addValidator('Count', false, 1);
$element->addValidator('Size', false, 102400);
$element->addValidator('Extension', false, 'jpg,png,gif');
$elements[] = $element;
// submit button
$element = $this->CreateElement('submit', 'submit');
$element->setLabel('Save');
$elements[] = $element;
$this->addElements( $elements );
$this->setElementDecorators( array( 'ViewHelper' ) );
$this->setDecorators( array( array( 'ViewScript', array( 'viewScript' => 'uploadfile-form.phtml' ) ) ) );
} // end construct
} // end class
?>
uploadfile-form.phtml
<form action=<?= $this->element->getAction() ?> method=<?= $this->element->getMethod() ?> id='AddNotificationForm' enctype='multipart/form-data' class='AjaxForm'>
<table border='0'>
<tr>
<td><label><?= $this->element->photo->getLabel() ?></label></td>
<td><?= $this->element->photo; ?></td>
</tr>
<tr>
<td></td>
<td><?= $this->element->submit; ?></td>
</tr>
</table>
</form>
当我初始化表单类并在视图中呈现它时,我收到以下错误:
警告:找不到文件装饰器...无法呈现文件元素 第2041行的/project_folder/library/Zend/Form/Element.php
相同的结构正在与其他表单元素一起使用,但不能与 file 元素一起使用。有人能告诉我这里有什么问题吗?
由于
答案 0 :(得分:2)
Zend_Form_Element_File是一种特殊的方式,如果没有“文件”装饰器它无法正常添加或删除
$this->setElementDecorators( array( 'ViewHelper' ) );