找不到自定义Zend表单装饰器文件

时间:2011-10-19 11:12:31

标签: php zend-framework

您好我的自定义zend_form上的File元素有问题。那是代码:

class Core_Form extends Zend_Form
{


protected $_containerId;
public function  __construct($options = null) {
    parent::__construct($options);

    $this->setElementDecorators(array(
        'ViewHelper',
        array(
            'Description',
            array(
                'tag'    => 'div',
                'class'  => 'submit-button',
                'escape' => false
            )
        ),
        array(
            array(
                'data' => 'HtmlTag'
            ),
            array(
                'tag'   => 'div',
                'class' => 'element'
            )
        ),
        array(
            'Label',
            array(
                'tag'    => 'div',
                'escape' => false
            )
        ),
        array(
            array(
                'row' => 'HtmlTag'
            ),
            array(
                'tag'   => 'div',
                'class' => 'element-row'
            ),
        ),
        'Errors'
    ));

    $this->setDecorators(array(
        'FormElements',
        array(
            'HtmlTag',
            array(
                'tag' => 'div',
                'id'  => $this->_containerId
            )
        ),
        'Form',
        'Errors'
    ));
}
}
 //upload form
 class Upload_Form extends Core_Form
 {

public function init()
{
    /* Form Elements & Other Definitions Here ... */

    $this->addElement('file', 'uploadFile', array(
        'destination' => APPLICATION_PATH.'/../public/uploads/ads',
        'validators' => array(
            array('count', false, 1),
            array('size', false, 102400),
        ),
        'label' => 'Wyślij plik:'
    ));

    $this->addElement('image', 'submit', array(
        'label' => false,
        'ignore' => true,
        'src'    => $this->getView()->baseUrl('images/send.jpg')
    ));

    $this->setEnctype('multipart/form-data');
}

}

我收到此错误: 警告:表单捕获异常:未找到文件装饰器...无法呈现文件元素

当我将元素装饰器中的ViewHelper更改为'File'时出现此错误: 警告:表单捕获异常:方法getMaxFileSize不存在堆栈跟踪:#0 [内部函数]:Zend_Form_Element-> __ call('getMaxFileSize',Array)

提前感谢您的帮助

1 个答案:

答案 0 :(得分:2)

你需要为File元素设置一组不同的装饰器,它需要使用'File'装饰器。

您可以在此处看到一个非常相似的问题:How do I use ViewScripts on Zend_Form File Elements?

希望有所帮助,