status; if ($status === null) { $packageModels->where('published', true); } elseif ($status === '0') { $packageModels->where('published', false); } elseif ($status === '1') { $packageModels->where('published', true); } /** @var string $search Search field */ $search = $request->search; if ($search) { $this->searchQuery( $packageModels, $search, null, 'name', 'amount' ); } $searchFields = trans('Nom, Montant'); /** Sort columns with a query */ $this->sortQuery($packageModels); /** Custom pagination */ $packageModels = $this->customPaginate($packageModels, $request->pagination); return view('bo.pages.packages.index', compact('packageModels', 'search', 'searchFields', 'status')); } /** * Show the form for creating a new resource. * * @param \App\Models\Package $package * @return \Illuminate\Contracts\View\View */ public function create(Package $package): \Illuminate\Contracts\View\View { return view('bo.pages.packages.create', [ 'packageModel' => $package, ]); } /** * Store a newly created resource in storage. * * @param \App\Http\Requests\Bo\Packages\StorePackageRequest $request * @return \Illuminate\Http\RedirectResponse */ public function store(StorePackageRequest $request): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request) { $package = new Package(); $package->fill($request->validated()); if ($package->saveOrFail()) { return redirect() ->route('bo.packages.edit', $package) ->with('success', trans( 'crud.messages.has_been_created', ['model' => Str::singular(trans('models.classes.packages'))] )); } return redirect() ->back() ->with('error', trans( 'crud.messages.cannot_be_created', ['model' => Str::singular(trans('models.classes.packages'))] )); }); } /** * Show the form for editing the specified resource. * * @param \App\Models\Package $package * @return \Illuminate\Contracts\View\View */ public function edit(Package $package): \Illuminate\Contracts\View\View { return view('bo.pages.packages.edit', [ 'packageModel' => $package, ]); } /** * Update the specified resource in storage. * * @param \App\Http\Requests\Bo\Packages\UpdatePackageRequest $request * @param \App\Models\Package $package * @return \Illuminate\Http\RedirectResponse */ public function update(UpdatePackageRequest $request, Package $package): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request, $package) { $package->fill($request->validated()); if ($package->saveOrFail()) { return redirect() ->route('bo.packages.edit', $package) ->with('success', trans( 'crud.messages.has_been_updated', ['model' => Str::singular(trans('models.classes.packages'))] )); } //end if return redirect() ->back() ->with('error', trans( 'crud.messages.cannot_be_updated', ['model' => Str::singular(trans('models.classes.packages'))] )); }); } /** * Remove the specified resource from storage. * * @param \App\Models\Package $package * @return \Illuminate\Http\RedirectResponse */ public function destroy(Package $package): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($package) { if ($package->deleteOrFail()) { return redirect() ->route('bo.packages.index') ->with('success', trans( 'crud.messages.has_been_deleted', ['model' => Str::singular(trans('models.classes.packages'))] )); } return redirect() ->back() ->with('error', trans( ':crud.messages.cannot_be_deleted', ['model' => Str::singular(trans('models.classes.packages'))] )); }); } /** * Change model published. * * @param \App\Models\Package $package * @return \Illuminate\Http\RedirectResponse */ public function changePublished(Package $package) { $package->update(['published' => !$package->getOriginal('published')]); return redirect()->back()->with('success', trans(__('crud.messages.publish_status_saved'))); } }