Zend框架2可选表单验证

时间:2014-05-17 20:11:25

标签: zend-framework2 zend-form

我是zend框架的新手。我创建了一个表单,其中有2个文本字段。现在,我想验证其中一个是为空,如果是,则表单有效。如何在InputFilter中设置这样的验证?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

要在输入过滤器中设置验证器,您可以在验证器类中执行以下操作:

$inputFilter->add($factory->createInput(array(
    'name'     => 'foo_bar_input',
    'required' => true,
    'filters'  => array(
        array('name' => 'StripTags'),
        array('name' => 'StringTrim')
    ),

    // add your validators here         
    'validators' => array(
        // check to see if an input is empty
        array(
            'name'    => 'Zend\Validator\NotEmpty',
            'options' => array(),
        )
    )
)));

然后在表单中使用过滤器,请执行以下操作:

$validate = $this->getServiceLocator()->get('your_validator_class');
$form->setInputFilter($validate->getInputFilter());

只需检查您的表单是否有效:

if ($form->isValid()) 
{ 
    // do stuff
}

以下是关于NotEmpty验证器的ZF2文档: http://framework.zend.com/manual/2.0/en/modules/zend.validator.set.html#notempty