search) { $this->searchQuery( $concepts, $request->search, null, 'seo_title', 'name', 'title', 'subtitle', ); } $this->sortQuery($concepts); $searchFields = trans('Name'); $conceptModels = $concepts->paginate(10); return view('bo.pages.concepts.index', compact('conceptModels', 'searchFields')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { if (Concept::count() === 8) { return back() ->with( 'error', trans( 'You already created 8 :models. Please delete or edit an existing one.', ['models' => trans('models.classes.concepts')] ) ); } return view('bo.pages.concepts.create'); } /** * Store a newly created resource in storage. * * @param \App\Http\Requests\Bo\Concepts\StoreConceptRequest $request * @return \Illuminate\Http\Response */ public function store(StoreConceptRequest $request) { return DB::transaction(function () use ($request) { $concept = new Concept(); $concept->data = Concept::getEmptyData(); $concept->fill(array_replace_recursive( \json_decode(\json_encode($concept->toArray()), true), $request->validated() )); if ($concept->saveOrFail()) { return redirect() ->route('bo.concepts.edit', $concept) ->with('success', trans( 'crud.messages.has_been_created', ['model' => Str::singular(trans('models.classes.concepts'))] )); } return redirect() ->back() ->with('error', trans( 'crud.messages.cannot_be_created', ['model' => Str::singular(trans('models.classes.concepts'))] )); }); } /** * Show the form for editing the specified resource. * * @param \App\Models\Concept $concept * @return \Illuminate\Http\Response */ public function edit(Concept $concept) { return view('bo.pages.concepts.edit', [ 'conceptModel' => $concept ]); } /** * Update the specified resource in storage. * * @param \App\Http\Requests\Bo\Concepts\UpdateConceptRequest $request * @param \App\Models\Concept $concept * @return \Illuminate\Http\Response */ public function update(UpdateConceptRequest $request, Concept $concept) { return DB::transaction(function () use ($request, $concept) { $concept->fill(array_replace_recursive( \json_decode(\json_encode($concept->toArray()), true), $request->validated() )); if ($concept->saveOrFail()) { return redirect() ->route('bo.concepts.edit', $concept) ->with('success', trans( 'crud.messages.has_been_updated', ['model' => Str::singular(trans('models.classes.concepts'))] )); } return redirect() ->back() ->with('error', trans( 'crud.messages.cannot_be_updated', ['model' => Str::singular(trans('models.classes.concepts'))] )); }); } /** * Remove the specified resource from storage. * * @param \App\Models\Concept $concept * @return \Illuminate\Http\Response */ public function destroy(Concept $concept) { if ($concept->deleteOrFail()) { return redirect() ->route('bo.concepts.index') ->with('success', trans( 'crud.messages.has_been_deleted', ['model' => Str::singular(trans('models.classes.concepts'))] )); } return redirect() ->back() ->with('error', trans( ':crud.messages.cannot_be_deleted', ['model' => Str::singular(trans('models.classes.concepts'))] )); } }