您好我正在尝试将数据库表用户导出到csv文件,我在我的控制器中使用以下方法:
public function getExport()
{
$table = User::all();
$output='';
foreach ($table as $row) {
$output.= implode(",",$row->toArray());
}
$headers = array(
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename="ExportFileName.csv"',
);
return Response::make(rtrim($output, "\n"), 200, $headers);
}
但是当我打开“ExportFileName.csv”时,我得到的不是Columns Headers,还有其他一些不在数据库中的垃圾?
在Laravel 4中最好和最简单的方法是什么
由于
答案 0 :(得分:2)
您尚未将标头添加到CSV。在输出行之前,您应该执行以下操作:
foreach ($table[0] as $column => $value) {
$output .= "$column,";
}
rtrim($output, ",");
$output .= "\n";
(还有更好的方法)。
您还需要在值中考虑特殊字符:
""
中的每个值换行以处理逗号,\n
。