2011-08-08 43 views
0

我下次驗證:Zend_Validate_GreaterThan忽略相等值

$gvGreaterThanPvValidate = new Zend_Validate_GreaterThan(array('min' => 100)); 
$gvGreaterThanPvValidate->setMessage('GV should be greater than PV or equal'); 
$gv->addValidator($gvGreaterThanPvValidate); 

據了Zend文件它應該返回TRUE的值= 100。但是同等價值這個驗證返回FALSE。你可以幫我嗎?對不起我的英語不好。

回答

2

這是GreaterThan驗證程序的代碼。所以如果數字是相等的,它會返回false。

if ($this->_min >= $value) { 
     $this->_error(self::NOT_GREATER); 
     return false; 
    } 
    return true; 

而且醫生說:Returns true if and only if $value is greater than min option因此,如果值等於返回false

+0

是的,對不起。你是否知道同等或更高的驗證器? – pltvs

+0

http://www.nickpack.com/article/zend-framework-greaterthan-equalto-validator – yokoloko

2

您可以使用驗證器之間,具有「包容性」開關。只需將最大值設置爲像PHP_INT_MAX一樣真的很大。這是一個黑客,但它的作品

0

想到我會回答這個,因爲我正在尋找同樣的事情,並在閱讀實際的代碼後,我注意到有一個「包容性」選項,將其設置爲true,你有你的GreaterThanOrEqualTo驗證:

這是ZF2:

 $this->add([ 
      'name' => 'bill_total', 
      'required' => true, 
      'filters' => [ 
       ['name' => 'StringTrim'] 
      ], 
      'validators' => [ 
       [ 
        'name' => 'greaterThan', 
        'options' => [ 
         'min' => 5, 
         'inclusive' => true 
        ] 
       ] 
      ] 
     ] 
    );