2

Zend_Validator_StringLength 应该如何扩展?
我的验证器:

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

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

谢谢

4

1 回答 1

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 代码。代码看起来不错,我无法发现它的问题。

于 2011-01-31T12:35:03.840 回答