Как установить пользовательский файл сообщения об ошибке Zend For m?

Поэтому я использую Zend и у меня есть форма Zend с Zend_Form_Element_File и тремя валидаторами: 1. setRequired 2. Extension 3. Size

 $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/fw-general@lists.zend.com/msg25779.html, выполнив:

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

и делать

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

Любая помощь?

3 ответа

Решение

Это то, как я использую, чтобы установить пользовательское сообщение валидатора.

$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

Не удается установить пользовательские сообщения валидатора в Zend_Form

$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'));

Чтобы добавить пользовательское сообщение в файл 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'));
Другие вопросы по тегам