2011-01-31 88 views
2

Zend_Validator_StringLength应该如何扩展?
MyValidator: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))); 
    } 
} 

使用验证的 - 错误不分配值$此 - > _分钟,$此 - > _最大:

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

编辑:

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

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

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

感谢

+1

_min和_max没有被分配,或者你想删除它们? – Ashley 2011-01-31 12:08:39

+0

他们没有得到分配 – Yosef 2011-01-31 12:12:34

回答

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框架验证后过滤筛选过的资料进行的,即。

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