authorizeResource(BreedingPage::class, 'breeding_page'); } public function index(BreedingPageType $type = null) { $query = BreedingPage::query(); if ($type) { $query = $query->where('type', $type); } $query = $this->sortQuery($query); $pages = $query->paginate(); $searchFields = trans('Titre, Entête, Contenu'); return view('bo.breeding-page.index', compact('pages', 'type', 'searchFields')); } public function create(BreedingPageType $type) { return view('bo.breeding-page.create', ['type' => $type]); } public function store(StoreBreedingPageRequest $request, BreedingPageType $type) { $data = $request->validated(); $data['content'][0] = \array_merge_recursive( $request->content[0], ['type' => BreedingBlocType::bloc1()] ); $page = new BreedingPage($data); $page->type = $type; $this->storeUploadedImage($request, $page, 'picture'); $page->saveOrFail(); return redirect()->route('bo.breeding-page.edit', $page) ->with('success', 'Enregistré !'); } public function edit(BreedingPage $page) { return view('bo.breeding-page.edit', ['page' => $page]); } public function update(UpdateBreedingPageRequest $request, BreedingPage $page) { $page->fill($request->validated()); $this->storeUploadedImage($request, $page, 'picture'); $page->saveOrFail(); return redirect()->route('bo.breeding-page.edit', $page) ->with('success', 'Enregistré !'); } public function destroy(BreedingPage $page) { foreach ($page->content as $content) { if ( isset($content['content']['img']['value']) and File::exists($content['content']['img']['value']) ) { // TODO: check it does not delete default image ? File::delete($content['content']['img']['value']); } } if (!$page->delete()) { return redirect()->route('bo.breeding-page.edit', $page) ->with('error', 'Le contenu n\'a pas pu être supprimé'); } return redirect()->route('bo.breeding-page.index', $page->type) ->with('warning', 'Le contenu a bien été supprimé'); } }