2017-02-22 22 views
0

Я пытаюсь проверить данные моего JSON-файла. Он работает для строк в json-файле, но как обращаться с массивами в массиве?Check POST Data - JSON Array

Что я отправить:

{ 
    "info" : "test", 
    "data" : [ 
     { 
      "startdate": "2018-01-01T10:00:00+0100", 
      "enddate": "2018-01-01T17:00:00+0100" 
     } 
    ] 
} 

Что i've еще:

$dataReq = array(
    'info' => $request->get('info'), 
    'date' => $request->get('date'), // my array 
); 

foreach ($dataReq as $a => $value) { 
    if(empty($value)) { 
     return new View('The field \''.$a.'\' is required!');  
    } 
} 

Но doenst работа функции empty для массивов до сих пор. Он вернет false, потому что массив существует. Как я могу проверить ключ «startdate»?

КСТАТИ: i'm использованием symfony3 (FOSRestBundle), PHP 7.0

+0

Действительно ли это '' 'в отправленных данных или нет? – RiggsFolly

+0

О, извините. Нет, это не так. Я отредактировал его. –

+0

Вы проверили компонент [Symfony Validation] (https://symfony.com/doc/current/validation.html)? Я настоятельно рекомендую использовать его вместо того, чтобы пытаться изобрести колесо. – LBA

ответ

0

Вы можете проверить, если значение является массивом и фильтровать нулевые значения из него, а затем проверить, если он пуст. поведение

$dataReq = array(
    'info' => $request->get('info'), 
    'data' => $request->get('data'), // my array 
); 

foreach ($dataReq as $a => $value) { 
    if(is_array($value)) $value = array_filter($value); 
    if(empty($value)) { 
     return new View('The field \''.$a.'\' is required!');  
    } 
} 

array_filter() функции по умолчанию, чтобы удалить из массива всех значений, равных null, 0, '' или false, если нет обратного вызова не передаются.

Примечание: Я предполагаю, что вы хотели получить data, а не date.

As commented от LBA, я также предлагаю проверить Symfony Validation component, чтобы справиться с этим.

+0

Да. Это помогло мне до сих пор, я использовал Symfony Validation, спасибо за помощь. –

 Смежные вопросы

  • Нет связанных вопросов^_^