관리-도구
편집 파일: SliderController.php
<?php namespace App\Http\Controllers; use App\Models\Slider; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; class SliderController extends Controller { public function index() { $servicess = Slider::orderBy('created_at', 'desc')->get(); return view('admin.slider', compact('servicess')); } public function store(Request $request) { try { $validateData = $request->validate([ 'title' => 'required|string', 'description' => 'required|string', 'image' => 'nullable|file|image', ]); $service = new Slider(); $service->title = $validateData['title']; $service->description = $validateData['description']; if ($request->hasFile('image')) { $imagePath = $request->file('image')->store('slider', 'public'); $service->image = $imagePath; } $service->save(); return redirect()->route('admin-about.index')->with('success', 'New service added'); } catch (\Exception $e) { Log::error("Add service error: " . $e->getMessage()); return redirect()->back()->withErrors(['error' => 'An error occurred']); } } public function update(Request $request, $id) { try { $service = Slider::findOrFail($id); // validate data, make image nullable $validateData = $request->validate([ 'title' => 'required|string', 'description' => 'required|string', 'image' => 'nullable|file|image', ]); $service->title = $validateData['title']; $service->description = $validateData['description']; if ($request->hasFile('image')) { $imagePath = $request->file('image')->store('uploads/services', 'public'); // delete the old image if exists if ($service->image) { Storage::disk('public')->delete($service->image); } $service->image = $imagePath; } $service->save(); return redirect()->route('admin-about.index')->with('message', 'Service updated successfully'); } catch (\Exception $e) { Log::error('An error occurred while updating:', [ 'error message:' => $e->getMessage(), ]); return redirect()->back()->with('error', 'An error occurred'); } } public function destroy($id) { $service = Slider::findOrFail($id); $service->delete(); return redirect()->route('admin-about.index')->with('Service deleted successfully'); } }