2017-08-22 42 views
1

laravelビューファイルを正常にエクスポートするには、別のページにリダイレクトする方法を教えてください。私はLaravel Excel 2.1.20を使用しています。 私は調査しましたが、最初にリダイレクトしてからExcelシートをダウンロードする以外はこれができないことを発見しました。私は以下を行いましたが、まだ動作しません。ここでダウンロード後にlaravelビューにリダイレクトする

は私のコントローラです:

$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 

答えて

1

あなたは->download("xlsx");のようにクロージャを使用して、POST要求を経由してExcelファイルのダウンロードをトリガする場合は、ブラウザはどこにでもリダイレクトする必要はありません。

例えば:あなたの場合は定義されたルートにPOST要求を生成するために簡単なフォームで

// routes.php: 
Route::post("/pdf/download", "[email protected]"); 

view

// 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"); 
} 

あなたはこのPOSTリクエストを処理するためにrouteが必要になります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> 
関連する問題