0

我有下一个验证:

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

根据 Zend 文档,它应该在 value = 100 时返回 TRUE。但对于相等的值,此验证器返回 FALSE。你能帮助我吗?对不起我的英语不好。

4

3 回答 3

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

于 2011-08-08T08:59:24.683 回答
2

您可以使用具有“包容性”开关的 Between 验证器。只需将最大值设置为 PHP_INT_MAX 之类的非常大的值。这是一个黑客,但它的工作原理

于 2011-08-08T11:51:11.110 回答
0

以为我会在搜索相同内容时回答这个问题,在阅读实际代码后,我注意到有一个“包容性”选项,将其设置为 true,您就有了 GreaterThanOrEqualTo 验证器:

这是 ZF2 的:

        $this->add([
            'name' => 'bill_total',
            'required' => true,
            'filters'    => [
                ['name' => 'StringTrim']
            ],
            'validators' => [
                [
                    'name'    => 'greaterThan',
                    'options' => [
                        'min' => 5,
                        'inclusive' => true
                    ]
                ]
            ]
        ]
    );
于 2015-11-04T21:27:49.103 回答