paginate(10); return view('makanan.index', compact('makanan')); } public function create() { return view('makanan.create'); } public function store(Request $request) { $request->validate([ 'nama_makanan' => 'required|string|max:255', 'protein' => 'required|numeric', 'kandungan_lemak' => 'required|numeric', 'karbohidrat'=> 'required|numeric', 'kandungan_serat' => 'required|numeric', 'kalori' => 'required|numeric', 'porsi_saji' => 'required|string|max:255', 'tekstur' => 'required|in:lunak,sedang,keras', 'cara_pengolahan' => 'required|string', 'alternatif_serupa' => 'nullable|string', 'komposisi_makanan' => 'nullable|string', ]); Makanan::create($request->all()); return redirect()->route('makanan.index') ->with('success', 'Data makanan berhasil ditambahkan.'); } public function edit($id) { $makanan = Makanan::findOrFail($id); return view('makanan.edit', compact('makanan')); } public function update(Request $request, $id) { $request->validate([ 'nama_makanan' => 'required|string|max:255', 'protein' => 'required|numeric', 'kandungan_lemak' => 'required|numeric', 'karbohidrat'=> 'required|numeric', 'kandungan_serat' => 'required|numeric', 'kalori' => 'required|numeric', 'porsi_saji' => 'required|string|max:255', 'tekstur' => 'required|in:lunak,sedang,keras', 'cara_pengolahan' => 'required|string', 'alternatif_serupa' => 'nullable|string', 'komposisi_makanan' => 'nullable|string', ]); $makanan = Makanan::findOrFail($id); $makanan->update($request->all()); return redirect()->route('makanan.index') ->with('success', 'Data makanan berhasil diperbarui.'); } public function destroy($id) { $makanan = Makanan::findOrFail($id); $makanan->delete(); return redirect()->route('makanan.index') ->with('success', 'Data makanan berhasil dihapus.'); } public function show($id) { $makanan = Makanan::findOrFail($id); return view('makanan.detail', compact('makanan')); } }