如何使用Laravel Excel重定向 - > gt; download()

时间:2015-12-09 18:26:09

标签: php excel laravel

无法在Laravel Excel的文档中找到如何在download()之后重定向()。我试图像这样做什么

Excel::load('/bills/bill.template.xlsx', function($doc) {
    $sheet = $doc->setActiveSheetIndex(0);
    $sheet->setCellValue('G21', '{buyer}');
})->download('xlsx');

return redirect('/')->with('notification','custom msg');

但它没有用。

2 个答案:

答案 0 :(得分:0)

要下载,您必须执行return语句以及下载。

return Excel::load('/bills/bill.template.xlsx', function($doc) {
    $sheet = $doc->setActiveSheetIndex(0);
    $sheet->setCellValue('G21', '{buyer}');
})->download('xlsx');

如果您不将其发送到视图,它将无法下载。 所以,据我所知,没有像下载和重定向这样的东西。

您可以做的是将Excel文件存储在laravel(或您喜欢的任何位置)的存储文件夹中的某个位置,然后重定向。在新页面中,您可以使用JS打开隐藏页面,然后在该页面中下载要提供给用户的Excel文件。

答案 1 :(得分:0)

似乎无法完成,但有一种解决方法可以尝试类似的问题:

How do I redirect after download in Laravel?

基本上你首先重定向回到最后一页,然后开始下载:

Session::flash('download.in.the.next.request', 'filetodownload.pdf');

return Redirect::to('/');

然后在您的视图中看起来像这样:

<html>
  <head>
      @if(Session::has('download.in.the.next.request'))
         <meta http-equiv="refresh" content="5;url={{     Session::get('download.in.the.next.request') }}">
      @endif
   <head>

   <body>
      ...
   </body>
</html>

查看以上链接以获取进一步说明。