Intereting Posts
Что такое «Ресурс №»? mysql_affected_rows () возвращает 0 для инструкции UPDATE, даже если обновление действительно происходит Введите мой php в mysql без повтора? Сохранение файлов как blob в базе данных ajax php pdo Невозможно удалить утечку и утечку памяти Система входа в PHP с использованием Cookies и соленых хешей Как предотвратить перегрузку сервера во время запросов Curl в PHP Загрузка в Codeigniter – тип файла, который вы пытаетесь загрузить, не разрешен Как получить весь столбец с именем, имеющим одно и то же имя, при использовании красноречия laravel? PHP-массив Кодирование и декодирование: нужна функция для кодирования и декодирования строки или массива с разделителями или массивом Как кэшировать статический контент (css, images, js files) в CakePHP2? Данные PHP EXIF ​​не работают Невозможно переместить композитор Множественный переключатель для php-формы Как сортировать по номерам сначала с Oracle SQL-запроса?

Привилегия ZF2 – Как мы можем проверять коллекции в 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.

спасибо

Вы должны изучить документацию проверки 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 .