对文件元素使用装饰器

using decorators with file element

我无法将装饰器与 $logo=$this->createElement('file', 'logo')

结合使用

我有一个 table 样式的表单,在我想添加一个文件元素之前,一切都运行良好。这是我的代码的相关部分(形式 class):

 $logo=$this->createElement('file', 'logo')
        ->setLabel('logo:')
        ->setDestination(APPLICATION_PATH . "/../public/images/logos")
        ->addValidator('Count', false, 1)                           
        ->addValidator('Size', false, 1024000)                      
        ->addValidator('Extension', false, 'jpg,png,gif,jpeg');     

    $logo->setDecorators(array(
          'ViewHelper',
           'Description',
           'Errors', array(array('data'=>'HtmlTag'), array('tag' => 'td',
           'colspan'=>'2','align'=>'center')),
           array(array('row'=>'HtmlTag'),array('tag'=>'tr'))    //, 'closeOnly'=>'true'
   ));

我收到如下错误消息:警告:异常被表单捕获:未找到文件装饰器...无法呈现文件元素堆栈跟踪

哪个可能是解决方案?

File 元素需要它自己的装饰器 - Zend_Form_Decorator_File。

ViewHelper 更改为 File:

$logo->setDecorators(
    array(
        'File',
        'Description',
        'Errors', array(array('data'=>'HtmlTag'), array('tag' => 'td',
        'colspan'=>'2','align'=>'center')),
        array(array('row'=>'HtmlTag'),array('tag'=>'tr'))    //, 'closeOnly'=>'true'
    )
);