Zend框架2 - 整数表单验证(Zend Framework 2 - Integer Form

2019-08-04 06:27发布

我有以下问题。 我写了(基于教程)一个表单验证。 该文本字段工作得很好,但整场表现奇怪。

这是我的验证:

        $inputFilter->add($factory->createInput(array(
            'name'     => 'zip',
            'required' => false,
            'filters'  => array(
                array('name' => 'Int'),
            ),
        )));

它位于我Entity.php内像其他的过滤器。 奇怪的是,这一个接受甚至不是一个字符串,但忽略了required的时候我将其设置为true 。 我试图取代IntDigits然后使接受的形式required ,但仍接受字符串。

有任何想法吗? 谢谢!

Answer 1:

尝试使用之间的验证:

$inputFilter->add($factory->createInput(array(
            'name'     => 'zip',
            'required' => true,
            'filters'  => array(
                array('name' => 'Int'),
            ),
            'validators' => array(
              array(
                  'name' => 'Between',
                  'options' => array(
                      'min' => 1,
                      'max' => 1000,
                  ),
              ),
            ),
        )));


Answer 2:

这是一个老话题,但我要指出, Filters不会导致验证错误,它们在后台工作,做他们的工作默默。

例如Int过滤器将删除任何非整数输入,所以当你做$form->getData()场与Int过滤器将只需整数值和0,如果它是空的。



Answer 3:

 array(
                        'name' => 'not_empty',
                    ),
                    array(
                        'name' => 'Digits',
                    ), array(
                        'name' => 'Between',
                        'options' => array(
                            'min' => 0,
                            'max' => 1,
                        ),
                    ),


文章来源: Zend Framework 2 - Integer Form Validation