我正在使用输入过滤器构建一个表单,所有这些都在Zend Framework 2中。我正在使用数组来配置我的输入,过滤器和验证器。所以,说我有一些意见:
array(
'name' => 'foo',
'required' => true,
)
在页面上,有一些jQuery代码可能会隐藏此输入。如果是,它会隐藏和禁用输入。在提交时,表单数据上的var_dump给出foo => null
(可能是因为它实际上没有在post数据中提交,因此表单输入永远不会给出值)。如果输入未隐藏且未填写,则在提交时会有foo => string '' (length=0)
。
如果使用输入,我想要输入有一个值。那么,我可以添加一些设置,我的配置数组将允许null传递验证,但拒绝空字符串值?或者我是否需要编写自定义验证器?
答案 0 :(得分:3)
是的,你应该使用NotEmpty验证器。
$inputFilter = new \Zend\InputFilter\InputFilter ();
$inputFilter->add ([
'name' => 'foo',
'validators' => [
[
'name' => 'not_empty',
'options' => [
'type' => 'string'
]
]
]
]);
$form->setInputFilter ($inputFilter);