관리-도구
편집 파일: GalleryController.php
<?php namespace App\Http\Controllers; use App\Models\Gallery; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; class GalleryController extends Controller { public function index(Request $request) { $query = Gallery::orderBy('created_at', 'desc'); if ($request->has('f_id')) { $f_id = $request->input('f_id'); $query->where('f_id', $f_id); // Filter by f_id } $gallery = $query->get(); return view('admin.gallery', compact('gallery')); } public function store(Request $request){ try { $validateData = $request->validate([ 'description' => 'required|string', 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', ]); if (!$request->hasFile('image')) { return redirect()->back()->withErrors(['image' => 'No file uploaded']); } $imagePath = $request->file('image')->store('slider', 'public'); // create a new service instance and assign validate data $service = new Gallery(); $service->description = $validateData['description']; $service->image = $imagePath; $service->save(); return redirect()->route('admin-gallery.index')-> with('Image added successfully'); } catch(\Exception $e){ Log::error('Image uploadng error:'. $e->getMessage()); } } public function update(Request $request, $id){ try { $service = Gallery::findOrFail($id); // validate data $validateData = $request->validate([ 'description' => 'required|string', 'image' => 'nullable|file|image', ]); $service->description = $validateData['description']; if ($request->hasFile('image')) { $imagePath = $request->file('image')->store('uploads/services', 'public'); if ($service->image) { Storage::disk('public')->delete($service->image); } $service->image = $imagePath; } $service->save(); return redirect()->route('admin-gallery.index')->with('Image updated successfully'); } catch(\Exception $e){ Log::error('Image update error:'. $e->getMessage()); } } public function destroy($id){ $gallery = Gallery::findOrFail($id); $gallery -> delete(); return redirect()-> route('admin-gallery.index')->with('Image deleted successfully'); } }