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(); 

那么你下面的代码将工作没关系!