您应该查看 ZF2 验证的文档来验证(表单)集合。一些关于这方面的文档可以在这里找到。
您应该设置type
像这样的字段:
'type' => 'Zend\InputFilter\CollectionInputFilter',
为了验证嵌套对象(或表单字段集),您需要设置type
字段如下:
'type' => 'Zend\InputFilter\InputFilter'
你像这样使用它:
'input_filter' => array(
'log_type' => array(
'validators' => array(
// ... validators ...
),
'filters' => array(
// ... filters ...
),
),
'meal_type' => array(
'validators' => array(
// ... validators ...
),
'filters' => array(
// ... filters ...
),
),
'meal_date' => array(
'validators' => array(
// ... validators ...
),
'filters' => array(
// ... filters ...
),
),
'users' => array(
'required' => true,
'count' => ... optional count ...
'input_filter' => ... input filter or input filter config to use for each element ...
'type' => 'Zend\InputFilter\CollectionInputFilter',
),
'some_complex_element' => array(
'property_of_complex_element' => array(
'name' => 'property_of_complex_element',
'required' => false,
'validators' => array(
// ... validators ...
),
'filters' => array(
// ... filters ...
),
),
'type' => 'Zend\InputFilter\InputFilter',
)
),
可以找到有关如何使用它的示例在堆栈上overflow
为了实现您想要的目标,您很可能必须结合这两种解决方案。不确定这是否是最简单的方法,但这绝对是可能的!
EDIT
对于尚未设置验证的人:
用于内容验证Apigility
你必须使用zfcampus/zf-content-validation module并按照文档进行配置。该模块允许您配置输入过滤器和验证器input_filter_spec
就像您通常在 ZF2 中进行表单验证一样。在这些里面input-filter
配置数组,您可以使用我上面引用的配置。
因此,首先正确安装该模块,设置完成后,您将能够在中使用这些验证类型Apigility
.