Laravel csv导出错误
问题描述:
我想生成csv,下面是我的代码。但即时得到错误Laravel csv导出错误
array_keys() expects parameter 1 to be array, object given
CSV控制器功能
$list = DB::table('festivals')
->join('namedesgs', 'festivals.id', '=', 'namedesgs.festival')
->select(DB::raw("festivals.id ,GROUP_CONCAT(namedesgs.name SEPARATOR '\n') as names,GROUP_CONCAT(namedesgs.designation SEPARATOR '\n') as namese"))
->groupBy('festivals.id')
->get();
array_unshift($list, array_keys($list[0]));
$callback = function() use ($list) {
$FH = fopen('php://output', 'w');
foreach ($list as $row) {
foreach ($row as $key => $val) {
$row[$key] = '="'.str_replace('"', '\"', $val).'"';
}
fputcsv($FH, $row);
}
fclose($FH);
};
return
响应::流($回调,200,$头);
答
您可以使用指定者()函数来获取后()到结果集合转换成数组类似以下内容:
$list = DB::table('festivals')
->join('namedesgs', 'festivals.id', '=', 'namedesgs.festival')
->select(DB::raw("festivals.id ,GROUP_CONCAT(namedesgs.name SEPARATOR '\n') as names,GROUP_CONCAT(namedesgs.designation SEPARATOR '\n') as namese"))
->groupBy('festivals.id')
->get()
->toArray();
那么你下面的代码将工作没关系!