gpt4 book ai didi

php - ZF2 apigility - 我们如何验证 json 数据中的集合

转载 作者:搜寻专家 更新时间:2023-10-31 20:38:47 25 4
gpt4 key购买 nike

如何使用 Apigility 获取经过验证的 json 值。例如,我需要在以下 json 数据中的 users 集合下验证 user_id

{   
"log_type": "split food",
"meal_type": "Break Fast",
"meal_date": "12-2-2015",
"users": [
{
"user_id": 1,
"food_details": [
{
"food_id":101
}
]
}
]
}

我知道可以通过 apigility 验证字段,但这里来自 json。

谢谢

最佳答案

您应该查看 ZF2 验证文档以验证(表单)集合。 Some documentation on this can be found here .您应该像这样设置 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',
)
),

可以找到有关如何使用它的示例 here on stackoverflow

要实现您的目标,您很可能必须将这两种解决方案结合起来。不确定这是否是最简单的方法,但绝对有可能!

编辑

对于还没有设置验证的人:

对于 Apigility 中的内容验证,您必须使用 zfcampus/zf-content-validation module并按照文档进行配置。该模块允许您在 input_filter_spec 中配置输入过滤器和验证器,就像您通常在 ZF2 中进行表单验证一样。在这些 input-filter 配置数组中,您可以使用我在上面引用的配置。

因此,首先正确安装该模块,一旦设置好,您就可以在 Apigility 中使用这些验证类型。

关于php - ZF2 apigility - 我们如何验证 json 数据中的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28668444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com