authorize('view', 'usefulinfos'); $usefulinfos = UsefulInfo::orderBy('position')->latest('id')->paginate(20); return view('dashboard.usefulinfos.index', compact('usefulinfos')); } public function create() { $this->authorize('create', 'usefulinfos'); return view('dashboard.usefulinfos.create'); } public function store(StoreRequest $request) { if ($request->hasFile('image')) { $path = $request->file('image')->store('uploads/usefulinfos'); } $this->dispatchSync(StoreJob::fromRequest($request, $path)); $this->info(trans('admin.messages.created')); return redirect()->route('dashboard.usefulinfos.index'); } public function edit(UsefulInfo $usefulinfo) { $this->authorize('update', 'usefulinfos'); return view('dashboard.usefulinfos.edit', compact('usefulinfo')); } public function update(UpdateRequest $request, UsefulInfo $usefulinfo) { if ($request->hasFile('image')) { Storage::delete($usefulinfo->image); $path = $request->file('image')->store('uploads/usefulinfos'); } else { $path = $usefulinfo->image; } $this->dispatchSync(UpdateJob::fromRequest($usefulinfo, $request, $path)); $this->info(trans('admin.messages.updated')); return redirect()->route('dashboard.usefulinfos.index'); } public function destroy(UsefulInfo $usefulinfo) { $this->authorize('delete', 'usefulinfos'); // delete items files foreach ($usefulinfo->items as $item) { if ($item->file_url) { Storage::delete($item->file_url); } $item->delete(); } Storage::delete($usefulinfo->image); $usefulinfo->delete(); $this->info(trans('admin.messages.deleted')); return redirect()->back(); } }