【问题标题】:How to set custom error message zend form element file?如何设置自定义错误消息zend表单元素文件?
【发布时间】:2012-08-22 09:44:03
【问题描述】:

所以我正在使用 Zend,我有一个 Zend 表单,其中包含一个 Zend_Form_Element_File 和三个验证器: 1.设置必填 2. 扩展 3. 尺寸

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

有什么帮助吗?

【问题讨论】:

    标签: php file zend-framework element validation


    【解决方案1】:

    这就是我用来设置自定义验证器消息的方式。

    $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

    【讨论】:

    • 谢谢!一直在寻找一种方法来做到这一点,但在文档中并不太清楚。
    【解决方案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'));
    

    【讨论】:

      【解决方案3】:

      要在 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'));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-07
        • 1970-01-01
        • 2022-08-23
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        相关资源
        最近更新 更多