无法在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');
但它没有用。
答案 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>
查看以上链接以获取进一步说明。