我有下一个验证:
$gvGreaterThanPvValidate = new Zend_Validate_GreaterThan(array('min' => 100));
$gvGreaterThanPvValidate->setMessage('GV should be greater than PV or equal');
$gv->addValidator($gvGreaterThanPvValidate);
根据Zend文档,它应该为值= 100返回TRUE。但是对于相等的值,此验证器返回FALSE。你能帮助我吗?抱歉我的英文。
答案 0 :(得分: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
答案 1 :(得分:2)
您可以使用具有“包含”开关的Between验证器。只需将max设置为somethng就像PHP_INT_MAX一样大。这是一个黑客,但它的工作原理
答案 2 :(得分:0)
以为我会回答这个问题,因为我正在寻找相同的东西,在阅读了实际代码后,我注意到有一个"包含"选项,将其设置为true,并且您拥有GreaterThanOrEqualTo验证器:
这是针对ZF2:
$this->add([
'name' => 'bill_total',
'required' => true,
'filters' => [
['name' => 'StringTrim']
],
'validators' => [
[
'name' => 'greaterThan',
'options' => [
'min' => 5,
'inclusive' => true
]
]
]
]
);