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
更新:答案: 这是生成此错误的内部应用程序系统问题,它修复了上面的代码工作。感谢他们帮助我的所有人。
由于
答案 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代码。代码看起来不错,我不能用它来解决问题。