ZF2 apigility — Как мы можем проверить коллекции в данных JSON

Как я могу получить проверенное значение JSON с помощью Apigility. Например, мне нужно пройти валидацию user_id под users Сбор в следующих данных JSON.

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

Я знаю, что поля могут быть проверены с помощью apigility, но здесь от json.

Спасибо

3

Решение

Вы должны заглянуть в документацию проверки 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 Вы должны использовать zfcampus/zf-content-validation модуль и следуйте документации по настройке. Этот модуль позволяет вам настроить ваши входные фильтры и валидаторы в input_filter_spec как вы обычно делаете для проверки формы в ZF2. Здесь внутри этих input-filter В конфигурационных массивах вы можете использовать конфиги, на которые я ссылался выше.

Поэтому сначала правильно установите этот модуль и после настройки вы сможете использовать эти типы проверки в Apigility,

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector