true, 'showMenu' => true ]; $breadcrumbs = [['link' => '/', 'name' => 'Home'], ['name' => 'GAMES']]; $createUrl = [['url' => 'create', 'name' => "Create", 'slug' => 'game']]; $banners = Game::all(); return view('content.games.index', [ 'breadcrumbs' => $breadcrumbs, 'pageConfigs' => $pageConfigs, 'createUrl' => $createUrl, 'banners' => $banners ]); } public function create() { $pageConfigs = [ 'pageHeader' => true, 'showMenu' => true ]; $breadcrumbs = [['link' => '/admin/banner', 'name' => 'Game'], ['name' => 'Add']]; return view('content.games.create', [ 'pageConfigs' => $pageConfigs, 'breadcrumbs' => $breadcrumbs, ]); } public function store(Request $request) { $request->validate([ 'title' => ['required', 'min: 3'], 'url' => ['nullable'], 'status' => ['required'], 'banner' => ['nullable', 'image'], ]); try { DB::beginTransaction(); $banner = new Game(); $banner->title = $request->title; $banner->status = $request->status; $banner->url = $request->url; $banner->save(); if ($request->banner) { $prefix = 'game'; $bannerImagePath = $this->uploadFile($request->banner, $prefix, false); $banner->picture = $bannerImagePath; $banner->save(); } DB::commit(); return redirect()->route('game.index')->with([ 'success' => "Game created successfully" ]); } catch (\Throwable $exception) { DB::rollBack(); return redirect()->back()->with([ 'error' => $exception->getMessage() ]); } } public function edit(Game $game) { $pageConfigs = [ 'pageHeader' => true, 'showMenu' => true ]; $breadcrumbs = [['link' => '/admin/game', 'name' => 'Game'], ['name' => 'Edit']]; return view('content.games.edit', [ 'pageConfigs' => $pageConfigs, 'breadcrumbs' => $breadcrumbs, 'banner' => $game ]); } public function update(Request $request, Game $game) { $request->validate([ 'title' => ['required', 'min: 3'], 'url' => ['nullable','url'], 'status' => ['required'], 'banner' => ['nullable', 'image'], ]); try { DB::beginTransaction(); $game->title = $request->title; $game->url = $request->url; $game->status = $request->status; $game->save(); if ($request->hasFile('banner')) { $prefix = 'banner'; $bannerImagePath = $this->updateFile($request->banner, $game->picture, $prefix, false); $game->picture = $bannerImagePath; $game->update(); } DB::commit(); return redirect()->route('game.index')->with([ 'success' => "Game updated successfully" ]); } catch (\Throwable $exception) { DB::rollBack(); return redirect()->back()->with([ 'error' => $exception->getMessage() ]); } } public function destroy(Game $game) { try { DB::beginTransaction(); $this->deleteFile($game->picture); $game->delete(); DB::commit(); return redirect()->back()->with([ 'success' => "Game deleted successfully" ]); } catch (\Throwable $exception) { DB::rollBack(); return redirect()->back()->with([ 'error' => $exception->getMessage() ]); } } }