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