Zend_Validate_GreaterThan игнорирует равные значения - PullRequest
0 голосов
/ 08 августа 2011

У меня есть следующая проверка:

$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. Вы можете мне помочь? Извините за мой английский.

Ответы [ 3 ]

2 голосов
/ 08 августа 2011

Вы можете использовать валидатор Between, у которого есть «включающий» переключатель.Просто установите max на что-то действительно большое, например PHP_INT_MAX.Это взлом, но он работает

2 голосов
/ 08 августа 2011

Это код от валидатора 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 голосов
/ 05 ноября 2015

Думал, что я отвечу на это, когда искал ту же вещь, и после прочтения фактического кода я заметил, что есть опция "inclusive", установите для нее значение true, и у вас есть валидатор GreaterThanOrEqualTo:

Это для ZF2:

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