whereNull('parent_gamme_id') ->with('childGammes')->get(); /** @var \App\Models\Gamme $gamme */ foreach ($dbGammes as $gamme) { $gammes->push($gamme); $gamme->childGammes->sortBy('title') ->map(function (Gamme $childGamme) use (&$gammes) { $gammes->push($childGamme); }); } return view('back.gammes.index', compact('gammes')); } /** * Show the form for creating a new resource. * * @param Gamme $gamme * * @return \Illuminate\Http\Response * * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass */ public function create(Gamme $gamme) { $parentGammes = Gamme::whereNull('parent_gamme_id') ->where('id', '!=', $gamme->id) ->orderBy('created_at', 'DESC')->get(); return view('back.gammes.create', compact('gamme', 'parentGammes')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\StoreGammeRequest $request * * @return \Illuminate\Http\RedirectResponse */ public function store(StoreGammeRequest $request) { $gamme = new Gamme($request->validated()); if (is_a($request->picture, "SplFileInfo")) { $gamme->picture = Utils::storeImage($request->picture, $gamme->getTable()); } if (is_a($request->banner, "SplFileInfo")) { $gamme->banner = Utils::storeImage($request->banner, $gamme->getTable()); } if (!$gamme->saveOrFail()) { return redirect()->route('bo.gammes.edit', $gamme->id)->with('error', 'L\'actualité n\'a pas été créee'); } return redirect()->route('bo.gammes.edit', $gamme->id)->with('success', 'Gamme créée !'); } /** * Show the form for editing the specified resource. * * @param Gamme $gamme * * @return \Illuminate\Http\Response * * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass */ public function edit(Gamme $gamme) { $parentGammes = Gamme::whereNull('parent_gamme_id') ->where('id', '!=', $gamme->id) ->orderBy('created_at', 'DESC')->get(); return view('back.gammes.edit', compact('gamme', 'parentGammes')); } /** * Update the specified resource in storage. * * @param Gamme $gamme * @param \Illuminate\Http\UpdateGammeRequest $request * * @return \Illuminate\Http\RedirectResponse */ public function update(Gamme $gamme, UpdateGammeRequest $request) { $gamme->fill($request->validated()); if (is_a($request->picture, "SplFileInfo")) { $gamme->picture = Utils::storeImage($request->picture, $gamme->getTable()); } if (is_a($request->banner, "SplFileInfo")) { $gamme->banner = Utils::storeImage($request->banner, $gamme->getTable()); } if (!$gamme->saveOrFail()) { return redirect()->route('bo.gammes.edit', $gamme->id) ->with('error', trans('La modification a échoué')); } return redirect()->route('bo.gammes.edit', $gamme->id) ->with('success', trans('Modifications enregistrées !')); } /** * Remove the specified resource from storage. * * @param Gamme $gamme * @return \Illuminate\Http\Response */ public function destroy(Gamme $gamme) { if (!$gamme->delete()) { return redirect()->route('bo.gammes.index')->with('error', trans('La suppression a échoué')); } return redirect()->route('bo.gammes.index')->with('success', trans('Suppression faite avec succès')); } }