从zend表单图像字段中删除默认错误消息

时间:2011-05-29 04:39:53

标签: zend-framework zend-form

嗨我在我的项目中使用zend图像元素,我已经验证了该字段。如果我选择的不是图像并提交表单,则会显示默认的错误消息,我尝试删除它并通过

添加自定义消息
    $image->removeDecorator('Error');
    $image->addErrorMessage('Invalid image');

但它不起作用。错误信息是

  

文件'.zfproject.xml'没有图片,   检测到'application / xml'

如何添加自定义错误消息并删除默认错误消息,请帮助....

这是我的代码

    $image = new Zend_Form_Element_File('image');
    $image->setLabel('Image URL :');
    $image->setDestination($imagePath);
    $image->addValidator('IsImage', false);
    //$image->removeDecorator('Error');
    //$image->addErrorMessage('tester');

2 个答案:

答案 0 :(得分:1)

验证器消息存储在Zend / Validate / File / IsImage.php中:

    protected $_messageTemplates = array(
    self::FALSE_TYPE   => "File '%value%' is no image, '%type%' detected",
    self::NOT_DETECTED => "The mimetype of file '%value%' could not be detected",
    self::NOT_READABLE => "File '%value%' is not readable or does not exist",
);

最简单的方法是验证器的子类:

class Custom_Validate_File_IsImage extends Zend_Validate_File_IsImage
{
    /**
     * @var array Error message templates
     */
    protected $_messageTemplates = array(
        self::FALSE_TYPE   => "Customize your message to whatever you want to right here.",
        self::NOT_DETECTED => "The mimetype of file '%value%' could not be detected",
        self::NOT_READABLE => "File '%value%' is not readable or does not exist",
    );
}

并使用自定义验证器代替:

$image->addValidator(new Custom_Validate_File_IsImage());

答案 1 :(得分:0)

如果您不关心不同的验证规则错误消息,并且只想显示一般错误失败消息,您可以直接执行

$element->addErrorMessage('Your error message');