* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ class ExportController extends Controller { protected $exportableGrids = [ 'OrderDataGrid', 'OrderInvoicesDataGrid', 'OrderShipmentsDataGrid', 'CustomerDataGrid', 'TaxRateDataGrid' ]; /** * Create a new controller instance. * */ public function __construct() { $this->middleware('admin'); } /** * function for export datagrid * * @return \Illuminate\Http\Response */ public function export() { $criteria = request()->all(); $format = $criteria['format']; $gridName = explode('\\', $criteria['gridName']); $path = '\Webkul\Admin\DataGrids'.'\\'.last($gridName); $proceed = false; foreach($this->exportableGrids as $exportableGrid) { if(last($gridName) == $exportableGrid) { $proceed = true; } } if($proceed) { $gridInstance = new $path; $records = $gridInstance->export(); if(count($records) == 0) { session()->flash('warning', trans('admin::app.export.no-records')); return redirect()->back(); } if ($format == 'csv') { return Excel::download(new DataGridExport($records), last($gridName).'.csv'); } else if($format == 'xls') { return Excel::download(new DataGridExport($records), last($gridName).'.xlsx'); } else { session()->flash('warning', trans('admin::app.export.illegal-format')); return redirect()->back(); } } else { return redirect()->back(); } } }