php - Zend framework 2 表单选择元素集需要 false

标签 php validation zend-framework2

我有一个选择元素如下,我想让它成为非必填字段。但我无法这样做。它给我错误“值是必需的,不能为空”

        $this->add(array(
            'name' => 'civil_status',
            'type' => 'Select',
            'attributes' => array(
                'id' => 'civil_status',
                'class' => 'form-control',
            ),
            'options' => array(
                'empty_option' => 'Civil status',
                'value_options' => array(
                    'married' => 'Married',
                    'single' => 'Single',
                    'other' => 'other',
                ),
            )
        ));

我已经设置验证如下

            $this->inputFilter->add($factory->createInput(array(
                        'name' => 'civil_status',
                        'required' => FALSE,
                        'allow_empty' => TRUE,
                        'filters' => array(
                            array('name' => 'StripTags'),
                        ),
                        'validators' => array(
                            array(
                                'name' => 'StringLength',
                                'options' => array(
                                    'encoding' => 'UTF-8',
                                    'min' => '2',
                                    'max' => '255',
                                ),
                            ),
                        ),
            )));

我尝试如上所述从输入过滤器中删除 required ,甚至我还尝试从 Controller 中删除 required 验证,如下所示。但没有任何接缝工作。如果你们知道解决这个问题,请告诉我。

            $form->getInputFilter()->get("civil_status")->setRequired(FALSE);
            $form->getInputFilter()->get("civil_status")->setAllowEmpty(TRUE);

最佳答案

Select 内置了 InArray 验证器,您无需在此处使用 StringLength 或过滤器,您只需使用 'required' => false 即可。

$this->inputFilter->add($factory->createInput(array(
                    'name' => 'civil_status',
                    'required' => false,
        )));

我知道这可能是个奇怪的问题,但您是否在点击 $form->IsValid() 之前将您的 InputFilter 添加到您的表单?

关于php - Zend framework 2 表单选择元素集需要 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20040448/

相关文章:

service - ZF2 通过附加参数从服务管理器获取服务

php - 在 zend framework 2 中启用 BjyProfiler 模块

java - 使用 PHP openssl_verify() 函数验证 Android 客户端 APP 创建的签名和数据

Phpunit-Selenium 运行所有断言函数

php - 如何从字符串中获取关联数组

python - Flask Wtform 调用 FieldList 和 FormField validate() 会导致错误

ruby-on-rails - Rails 3 : Duplicate validation error messages during testing

php - 用 php regex 替换方括号之间的子字符串

javascript - 当 propTypes 验证失败时强制 ReactJS 抛出真正的错误?

php - Zend Framework2 表单错误消息