관리-도구
편집 파일: BlogController.php
<?php namespace App\Http\Controllers; use App\Models\Blog; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; class BlogController extends Controller { public function index() { $sliders = Blog::orderBy('created_at', 'desc')->get(); return view('admin.blog', compact('sliders')); } public function store(Request $request) { try { $validateData = $request->validate([ 'blog' => 'required|string', 'date' => 'required|string', 'details' => 'required|string', // 'image' => 'required|file|image', ]); // if (!$request->hasFile('image')) { // return redirect()->back()->withErrors(['image' => 'No file uploaded']); // } // $imagePath = $request->file('image')->store('slider', 'public'); // create a new slider instance and assign validate data $slider = new Blog(); $slider->blog = $validateData['blog']; $slider->date = $validateData['date']; $slider->details = $validateData['details']; // $slider->image = $imagePath; $slider->save(); return redirect()->route('admin-blog.index')->with('success', 'New slider added'); } catch (\Exception $e) { Log::error("Add slider error: " . $e->getMessage()); return redirect()->back()->withErrors(['error' => 'An error occurred']); } } public function summernoteUpload(Request $request) { try { $request->validate([ 'image' => 'required|image|mimes:jpg,jpeg,png,webp', // 2MB ]); $path = $request->file('image')->store('summernote', 'public'); return response()->json([ 'url' => asset('storage/' . $path) ]); } catch (\Throwable $e) { Log::error('Summernote upload failed', [ 'error' => $e->getMessage() ]); return response()->json(['error' => 'Upload failed'], 500); } } public function update(Request $request, $id) { try { $slider = Blog::findOrFail($id); // validate data, make image nullable $validateData = $request->validate([ 'blog' => 'required|string', 'date' => 'required|string', 'details' => 'required|string', // 'image' => 'nullable|file|image', ]); $slider->blog = $validateData['blog']; $slider->date = $validateData['date']; $slider->details = $validateData['details']; // if ($request->hasFile('image')) { // $imagePath = $request->file('image')->store('uploads/sliders', 'public'); // // delete the old image if exists // if ($slider->image) { // Storage::disk('public')->delete($slider->image); // } // $slider->image = $imagePath; // } $slider->save(); return redirect()->route('admin-blog.index')->with('message', 'slider 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) { $slider = Blog::findOrFail($id); $slider->delete(); return redirect()->route('admin-blog.index')->with('slider deleted successfully'); } }