authorize('viewAny', Slide::class); $query = Slide::query(); $dataTable->sortQuery(Slide::class, $query); $slides = $dataTable->paginateQuery($query); return view('bo.slides.index', compact('slides')); } public function create(): View { $this->authorize('create', Slide::class); return view('bo.slides.create'); } public function store(StoreSlideRequest $request): RedirectResponse { $this->authorize('create', Slide::class); return DB::transaction(function () use ($request) { $slide = new Slide(); $slide->fill($request->only( $slide->getFillable() )); if ($slide->saveOrFail()) { return to_route('bo.slides.edit', $slide) ->with('success', trans('crud.messages.has_been_created', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); } return to_route('bo.slides.create') ->with('error', trans('crud.messages.cannot_be_created', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); }); } public function edit(Slide $slide): View { $this->authorize('update', $slide); return view('bo.slides.edit', compact('slide')); } public function update(UpdateSlideRequest $request, Slide $slide): RedirectResponse { $this->authorize('update', $slide); return DB::transaction(function () use ($request, $slide) { $slide->fill($request->only( $slide->getFillable() )); if ($slide->saveOrFail()) { return to_route('bo.slides.edit', $slide) ->with('success', trans('crud.messages.has_been_updated', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); } return to_route('bo.slides.edit', $slide) ->with('error', trans('crud.messages.cannot_be_updated', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); }); } public function destroy(Slide $slide): RedirectResponse { $this->authorize('delete', $slide); return DB::transaction(function () use ($slide) { if ($slide->deleteOrFail()) { return to_route('bo.slides.index') ->with('warning', trans('crud.messages.has_been_deleted', ['model' => Str::ucfirst(trans_choice('models.classes.slides', 1))])); } return to_route('bo.slides.edit', $slide) ->with('error', trans('crud.messages.cannot_be_deleted', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); }); } }