PDF/CSV/Excel export doesn't work, doesn't download files. I tried to debugged it and I get queried data, but file isn't generated. I use post form to choose a file format and date range which taks will be exported.
public function export(Request $request)
{
$dateRange = explode('-', $request->datefilter);
$dateFrom = Carbon::createFromDate(Arr::get($dateRange, '0', ''));
$dateTo = Carbon::createFromDate(Arr::get($dateRange, '1', date('Y-m-d')));
switch ($request->export_format) {
case 'csv':
$this->exportCSV($dateFrom, $dateTo);
break;
case 'excel':
$this->exportExcel($dateFrom, $dateTo);
break;
case 'pdf':
$this->exportPDF($dateFrom, $dateTo);
break;
}
return redirect()->back()->with('message', 'Export was successfully');
}
private function exportCSV($dateFrom, $dateTo)
{
return Excel::download(new TaskExport($dateFrom, $dateTo), 'task.csv');
}
private function exportExcel($dateFrom, $dateTo)
{
return Excel::download(new TaskExport($dateFrom, $dateTo), 'task.xlsx');
}
private function exportPDF($dateFrom, $dateTo)
{
$data = auth()->user()->tasks()->whereBetween('created_at', [$dateFrom, $dateTo])->get();
view()->share('tasks', $data);
$pdf = PDF::loadView('pdf_view', $data);
return $pdf->download('task.pdf');
}
Form
<form method="post" action="{{route('task.export')}}">
@csrf
<select name="export_format">
<option value="csv">CSV</option>
<option value="pdf">PDF</option>
<option value="excel">Excel</option>
</select>
<input type="text" name="datefilter" value="">
<button class="btn btn-sm btn-primary" type="submit">Export</button>
</form>