2011-01-31 40 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代碼。代碼看起來不錯,我不能用它來解決問題。