2012-08-27 76 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')); 
相關問題