如何重定向到另一个页面以成功导出laravel视图文件。我正在使用Laravel Excel 2.1.20。 我研究过,我发现除了我首先重定向然后下载excel表之外,这是不可能完成的。我做了以下但仍然无法正常工作。
这是我的控制器:
$export = Excel::create('Request for Quote', function($excel) use($item, $request) {
$excel->sheet('RFQ 1', function($sheet) use($item, $request) {
$sheet->loadView('requests.send_rfq_pdf')
->with('item', $item)
->with('request', $request);
});
});
session(['download.in.the.next.request' => $export]);
return back();
我的观点:
@if(Session::has('download.in.the.next.request'))
<meta http-equiv="refresh" content="5;url={{Session::get('download.in.the.next.request') }}">
@endif
答案 0 :(得分:1)
如果您通过POST
请求触发下载Excel文件,使用->download("xlsx");
之类的闭包,则您的浏览器无需在任何地方重定向。
例如:
// ExampleController.php
public function postDownload(Request $request){
Excel::create('Request for Quote', function($excel) use($item, $request) {
$excel->sheet('RFQ 1', function($sheet) use($item, $request) {
$sheet->loadView('requests.send_rfq_pdf')
->with('item', $item)
->with('request', $request);
});
})->download("xlsx");
}
您需要route
来处理此帖子请求:
// routes.php:
Route::post("/pdf/download", "ExampleController@postDownload");
和一个view
,其中包含一个简单的表单,可以为POST
文件中定义的路由生成routes.php
个请求:
<!-- {view}.blade.php -->
<form method="POST" action="{{ url('/pdf/download') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}/>
<button type="submit">Download</button>
</form>