2016-09-24 2 views
-1

Я извлекаю данные из базы данных и затем с помощью преобразований преобразую ее в то, как она мне нужна. На данный момент это выглядит примерно так:Обработка отсутствующих данных из таблицы

return [ 
    'data' => [ 
     "col1" => $tableData->col1, 
     "col2" => $tableData->col2, 
     "col3" => $tableData->col3 
    ] 
] 

Проблема в том, что не все таблицы базы данных будут иметь col2, например. Таким образом, я ищу, чтобы сделать что-то вроде этого

return [ 
    'data' => [ 
     "col1" => $tableData->col1 or '', 
     "col2" => $tableData->col2 or '', 
     "col3" => $tableData->col3 or '' 
    ] 
] 

Вышесказанное не похоже на работу, хотя, если столбец не существует я получаю что-то вдоль линий от

Undefined собственности: StdClass :: $ col2

Есть ли способ справиться с этим?

Благодаря

ответ

1

Вы можете проверить с hasProperty, подробнее здесь http://php.net/manual/en/reflectionclass.hasproperty.php

Итак, вы могли бы что-то вроде этого:

return [ 
    'data' => [ 
     'col1' => $tableData->hasProperty('col1')?$tableData->col1:'', 
     'col2' => $tableData->hasProperty('col2')?$tableData->col2:'', 
     'col3' => $tableData->hasProperty('col3')?$tableData->col3:'', 
    ] 
] 
+0

Что, что не требует от меня сделать это отражение объекта? –

+0

Нет, эта функция работает с любым классом. –

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