get(); return view('admin.menu', compact('categories', 'menuItems')); } public function store(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'description' => 'nullable|string', 'price' => 'required|numeric|min:0', 'category_id' => 'required|exists:menu_categories,id', 'image' => 'required|image|mimes:jpeg,png,jpg|max:2048' ]); $imagePath = $request->file('image')->store('menu-items', 'public'); MenuItem::create([ 'name' => $request->name, 'description' => $request->description, 'price' => $request->price, 'category_id' => $request->category_id, 'image' => $imagePath, 'is_available' => $request->has('is_available') ]); return redirect()->back()->with('success', 'Menu berhasil ditambahkan'); } public function update(Request $request, MenuItem $menuItem) { $request->validate([ 'name' => 'required|string|max:255', 'description' => 'nullable|string', 'price' => 'required|numeric|min:0', 'category_id' => 'required|exists:menu_categories,id', 'image' => 'nullable|image|mimes:jpeg,png,jpg|max:2048' ]); $data = [ 'name' => $request->name, 'description' => $request->description, 'price' => $request->price, 'category_id' => $request->category_id, 'is_available' => $request->has('is_available') ]; if ($request->hasFile('image')) { // Hapus gambar lama if ($menuItem->image) { Storage::disk('public')->delete($menuItem->image); } // Upload gambar baru $data['image'] = $request->file('image')->store('menu-items', 'public'); } $menuItem->update($data); return redirect()->back()->with('success', 'Menu berhasil diperbarui'); } public function destroy(MenuItem $menuItem) { if ($menuItem->image) { Storage::disk('public')->delete($menuItem->image); } $menuItem->delete(); return redirect()->back()->with('success', 'Menu berhasil dihapus'); } }