'import', 'title' => 'Импорт', 'id' => 'import', 'header' => [ 'id' => 'ID', 'type' => 'Тип', 'status' => 'Статус', 'created_at' => 'Создано', 'updated_at' => 'Изменено', ], 'searchFields' => [ 'id', ], ]; /** * Display a listing of the resource. */ public function index(Request $request) { session(['gp_import' => $request->all()]); $model = new Import; // fill filters $this->data['ranges'] = []; $this->createFilters($model, 'type', 'status'); $this->createDateFilters($model, 'created_at', 'updated_at'); $q = $model::query(); $q->withoutGlobalScopes(); $this->acceptFilters($q, $request); $this->acceptSearch($q, $request); $this->setSortAndOrderBy($model, $request); $q->orderBy($this->data['sortBy'], $this->data['orderBy']); $this->data['imports'] = $q->paginate(session('per_page', config('pagination.per_page')))->withQueryString(); return view('import.index', $this->data); } public function store(Request $request) { // validate data $request->validate([ 'type' => 'required|in:orders,reclamations,mafs', 'import_file' => 'required|file', ]); // load and save file $path = Str::random(2) . '/' . Str::uuid() . '.' .$request->file('import_file')->getClientOriginalExtension(); Storage::disk('upload')->put($path, $request->file('import_file')->getContent()); $import = Import::query()->create([ 'type' => $request->type, 'status' => 'new', 'filename' => $path, ]); $import->refresh(); ImportJob::dispatch($import, $request->user()->id); Log::info('Import job ' . $request->type . ' created!'); return redirect()->route('import.index', session('gp_import'))->with(['success' => 'Задача импорта успешно создана!']); } public function show(Import $import) { $this->data['import'] = $import; return view('import.show', $this->data); } }