2012-08-27 82 views
6

所以我使用Zend和我有一个Zend_Form_Element_File和三个验证一个Zend形式: 1. setRequired 2.扩展 3.大小如何设置自定义错误消息zend表单元素文件?

$this->browse = new Zend_Form_Element_File('Browse'); 
$this->browse->setRequired(false)->removeDecorator('errors')->removeDecorator('label') 
->addValidator('Extension', true, 'pdf')->addValidator('Size', false, 2000000); 

我要为这些验证自定义错误消息,但不知该如何。

我想设置自定义错误消息的原因是因为我有一个自定义装饰器,当它与isValid()无效时,我会抓取所有错误并将它们显示在窗体的顶部。我在表单中抓取错误的方法是getErrors()。

我也尝试:通过做http://www.mail-archive.com/[email protected]/msg25779.html

$validator = new Zend_Validate_File_Upload(); 
$validator->setMessages(array('fileUploadErrorNoFile' => 'Upload an image!'')); 

,做

$this->browse->addValidator($validator); 

任何帮助吗?

回答

18

这是我如何设置自定义验证器消息。

$file = new Zend_Form_Element_File('file'); 
$file->setLabel('File Label') 
    ->setMaxFileSize('512000') 
    ->addValidator('Count', true, 1) 
    ->addValidator('Size', true, 512000) 
    ->addValidator('Extension', true, 'jpg,jpeg,png,gif'); 

$file->getValidator('Count')->setMessage('You can upload only one file'); 
$file->getValidator('Size')->setMessage('Your file size cannot upload file size limit of 512 kb'); 
$file->getValidator('Extension')->setMessage('Invalid file extension, only valid image with file format jpg, jpeg, png and gif are allowed.'); 

这里是一些可能对理解定制验证器消息有用的链接。

http://framework.zend.com/manual/en/zend.validate.messages.html

Zend Framework Custom Validation Class Error Message

Can't set custom validator messages in Zend_Form

+0

感谢这个!一直在寻找一种方法来做到这一点,但在文档中并不太清楚。 –

2
$this->browse = new Zend_Form_Element_File('Browse'); 
$this->browse->setRequired(true) 
      ->removeDecorator('errors') 
      ->removeDecorator('label') 
      ->addValidator('Extension', true, 'pdf') 
      ->addValidator('Size', false, 2000000) 
      //->setMessage('You custom message') 
      ->addValidator('File_Upload', true, array('messages'=>'You custom message')); 
0

要在zend_form_element_file添加自定义消息,请参见下面的代码,

$browse = new Zend_Form_Element_File('Browse'); 
    $browse->addValidator('Extension', false, array('pdf', 
       'messages'=>array('fileExtensionFalse'=>'file extension is not supported')) 
      ->addValidator('Size', false, array(2000000, 
       'messages'=>array('filesizefalse'=>'maximum 2000000 supported')); 
相关问题