Zend_Validator_StringLength应该如何扩展?

时间:2011-01-31 11:54:33

标签: zend-framework zend-validate

Zend_Validator_StringLength应如何扩展?
MyValidator:

class Zend_Validate_StringLengthNoTags extends Zend_Validate_StringLength {

    public function  __construct($options = array()) {
        parent::__construct($options);
    }

    public function isValid($value) {
        return parent::isValid(trim(strip_tags($value)));
    }
}

使用验证器 - 错误未将值分配给$ this-> _min,$ this-> _max:

$text->addValidator(new Zend_Validator_StringLengthNoTags(array('max'=>4,'min'=>2)));

编辑:

错误的根源:$this->_min==1, $this->_max==null, 但它应该是

$this->_min==2, $this->_max==4

更新:答案: 这是生成此错误的内部应用程序系统问题,它修复了上面的代码工作。感谢他们帮助我的所有人。

由于

1 个答案:

答案 0 :(得分:1)

您的Zend_Validate_StringLengthNoTags似乎可以通过过滤器StripTags和StringTrim以及标准Zend_Validate_StringLength验证器来替换。

例如,我认为以下内容与验证器的作用相同:

   $text->setFilters(array('stripTags','stringTrim'));
   $text->addValidator(new Zend_Validator_StringLength(array('max'=>4,'min'=>2)));

原因是Zend Framework中的验证是在过滤后执行的,即在过滤后的数据上执行。

返回Zend_Validate_StringLengthNoTags代码。代码看起来不错,我不能用它来解决问题。