2011-04-20 84 views
4

幾分鐘前實現驗證程序沒有GreaterOrEqualThan驗證程序,或GreaterThan驗證程序中的參數將其行爲從>更改爲>=Zend Framework中的GreaterOrEqual驗證程序

爲什麼?是否有可能使用基本的zend框架驗證器組成>=驗證器?

是的,夥計們,我知道我可以寫我自己的驗證,但我很好奇基於原生ZF解決方案驗證器;-)

+0

你想與GreaterOrEqualThan或GreaterThan比較什麼?我認爲zend框架實現在某個時候結束,因爲它仍然是一個需要根據您的需求進行定製的框架。然而有趣的問題;) – 2011-04-20 12:30:38

+0

我創建了我自己的接受「嚴格」選項的GT和LT驗證器。 – 2011-04-20 12:41:15

+0

@ArtWorkAD:好的,一些zend驗證器接受控制驗證器行爲的附加參數。例如「相同」的「嚴格」參數,「alnum」的「allowWhiteSpace」,「between」之間的「包含」(!!!!!!!)等等。因此它是「包容性」的, 'greaterThan'選項。這是不公平的;-) – zerkms 2011-04-20 12:51:38

回答

3

我設置array('min' => ($value-1))和使用GreaterThan。也許使用一個鏈,並添加Digits,所以你確保你正在處理數字。這樣的事情:

$value = 10; 

$chain = new Zend_Validate(); 
$chain->addValidator(new Zend_Validate_Digits()); 
$chain->addValidator(new Zend_Validate_GreaterThan(array('min' => ($value-1)))); 

var_dump($chain->isValid($value), $chain->getMessages()); 

我認爲這就和ZF一樣。雖然不會因爲獲得功能請求而受傷。將是一個很好的補充。否則,請擴展GreaterThan並添加一個選項。

+0

是的,因爲我需要'> = -1',所以我使用了'int'驗證器並將'-1.1'的值指定爲'min'。但是這看起來像一個骯髒的黑客;-) – zerkms 2011-04-21 01:21:55

+0

是的,我會擴展GreaterThan並使其工作。讓我知道你是否需要幫助。 – Till 2011-04-21 09:57:09

+0

大聲笑,我不; ;-) – zerkms 2011-04-21 10:17:51