处理表

时间:2016-09-24 16:39:07

标签: laravel laravel-5.2

我正在从数据库中检索数据,然后使用转换将其转换为我需要的方式。目前它看起来像这样

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 ''
    ]
]

上面似乎没有用,如果一个列不存在,我会得到一些关闭的东西

  

未定义的属性:stdClass :: $ col2

有什么方法可以解决这个问题吗?

由于

1 个答案:

答案 0 :(得分: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:'',
    ]
]