ZF文件元素不打印任何错误消息

时间:2012-08-10 15:33:29

标签: zend-framework zend-form zend-form-element

我创建了一个独立的zend表单来上传文件,我将文件元素设置为必填字段。但是文件元素没有打印出任何错误消息。

我为文件元素设置装饰器,如下所示:

// The file element requires the File decorator instead of the 
// ViewHelper decorator
$file->setDecorators(array(
    'File',
    'Errors',
)); 

我在这里粘贴了代码:http://pastebin.com/0D59pxiR

我在此处粘贴了模板:http://pastebin.com/SRYh71JN

我做错了什么?我提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你可能需要拆分ispost和isvalid:

if( isset( $_POST['submit'] )) {
    if ($form->isValid( $_POST )){
    echo 'Thank you';
    }
    //if is post but not valid reload page and render the errors
    echo $form->render( $view );//render form with errors
    echo $form->getMessages($view);//or just render the messages back to the view
} else {
    echo $form->render( $view );//if not post render form
}

这是我最好的猜测。

<强> [编辑]

你试过吗

$file->addDecorator('File');

而不是

$file->setDecorators(array(
    'File',
    'Errors',
));

表单级别setElementDecorators可能以某种方式干扰设置文件元素装饰器。 addDecorator()或addDecorators()应该阻止它。

我还建议您尝试使用默认装饰器进行测试以排除任何其他潜在问题。

我没有看到任何明显的东西。唯一真正不同的是File元素代理isValid()到Zend_File_Transfer。我想那里可能存在一个问题,但是如果有的话我会发现一个重要的错误信息。

答案 1 :(得分:0)

需要打印出enctype =“element-&gt; getEnctype();?&gt;并且一切正常。