我想导出表,但不是所有字段都必须导出。 抱歉,我的英语不是很好......
功能优秀
public function excel()
{
$rekanan_internal = rekanan_internal::all();
$selects = DB::table('rekanan_internal')->select('nama','description','pic','contact')->get();
$selectsArray = [];
$selectsArray = ['nama','description','pic','contact'];
foreach ($selects as $select)
{
$selectsArray = $select->toArray();
}
Excel::create('rekanan_internal', function($excel) use($rekanan_internal){
$excel->sheet('sheet1',function($sheet) use($selectsArray){
$sheet->fromArray($rekanan_internal);
});
})->download('xlsx');
}
收到错误
ExportController.php第31行中的FatalErrorException:调用undefined 方法stdClass :: toArray()
答案 0 :(得分:3)
DB::table('xxxx')->get()
将返回stdClass
的集合。 stdClass
没有任何功能toArray()
。
您可能想要创建整个集合的数组,在这种情况下,您可以使用以下内容替换for循环:
$selectsArray = $selects->toArray();
这是因为集合确实有一个名为toArray
的函数。
<强>更新强>
您甚至可以将代码缩短为以下内容:
$selectsArray = DB::table('rekanan_internal')
->select('nama','description','pic','contact')
->get()
->toArray();
更新2:
对于小于5.3的Laravel版本,您甚至不需要将结果转换为数组,因为结果是数组。
$selectsArray = DB::table('rekanan_internal')
->select('nama','description','pic','contact')
->get()