2012-08-27 21 views
6

だから私はZendのを使用していると私はZend_Form_Element_Fileと3つのバリとZendのフォームを持っている: 1.私はこれらのバリデータ用のカスタムエラーメッセージを設定したい 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); 

をsetRequiredが、方法がわかりません。

カスタムエラーメッセージを設定する理由は、フォームが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')); 
関連する問題