使用laravel

时间:2016-04-12 09:08:11

标签: php laravel

我在谷歌搜索从laravel生成csv文件,我找到了以下代码:

  public function download(){
  $headers = [
    'Cache-Control'       => 'must-revalidate, post-check=0, pre-  check=0'
    ,   'Content-type'        => 'text/csv'
    ,   'Content-Disposition' => 'attachment; filename=galleries.csv'
    ,   'Expires'             => '0'
    ,   'Pragma'              => 'public'
   ];

$list = User::all()->toArray();

# add headers for each column in the CSV download
array_unshift($list, array_keys($list[0]));

$callback = function() use ($list) 
{
    $FH = fopen('php://output', 'w');
    foreach ($list as $row) { 
        fputcsv($FH, $row);
    }
    fclose($FH);
 };

return Response::stream($callback, 200, $headers);
}

在上面的代码中,我并不理解

$callback = function() use ($list){...}
有人请解释一下吗?

2 个答案:

答案 0 :(得分:0)

让自己陷入困境并使用此库:http://www.maatwebsite.nl/laravel-excel/docs

它可以将您的数据转换为csv,excel和所有其他类型的好东西。对于较大的数据集,它特别好。

当您在同一个操作系统上的同一程序中打开csv时,这一切都很有趣。但是,只要您的客户使用Libre,Open或者只是Office op MS或Mac,您的世界就会在多层中进入新的地狱深处。

这个图书馆尽可能标准化csv,你会喜欢它。

答案 1 :(得分:0)

我最近发现了' league/csv'包 - 在这里写了一篇关于我的用法的S.O帖子(一个简单的例子):CSV export in laravel 5 controller