如何使用无标记性获得验证的json值。例如,在下面的json数据中,我需要在users集合下获得验证的users。
{
"log_type": "split food",
"meal_type": "Break Fast",
"meal_date": "12-2-2015",
"users": [
{
"user_id": 1,
"food_details": [
{
"food_id":101
}
]
}
]
}我知道字段可以通过智能验证,但这里是来自json的。
谢谢
发布于 2015-02-24 08:33:03
您应该查看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',
)
),关于如何使用它的示例可以找到溢出。
要实现你想要的目标,你很可能必须将这两种解决方案结合起来。不确定这是否是最简单的方法,但这是绝对有可能的!
编辑
对于还没有设置验证的人:
对于Apigility中的内容验证,您必须使用模块并按照文档进行配置。这个模块允许您在input_filter_spec中配置输入过滤器和验证器,就像通常在ZF2中进行表单验证一样。在这些input-filter配置数组中,您可以使用我前面提到的配置。
因此,首先正确安装该模块,一旦设置完毕,您将能够在Apigility中使用这些验证类型。
https://stackoverflow.com/questions/28668444
复制相似问题