paginate(10); // Add pagination with 10 items per page return view('admin.makanan.makanan', compact('makanans')); } public function editmakanan(Makanan $makanan){ // Ambil semua kategori untuk dropdown $kategoris = Kategori::pluck('kategori', 'id'); // Ambil nama dan ID kategori $jenis_makanans = JenisMakanan::pluck('name', 'id'); // Ambil nama dan ID kategori return view('admin.makanan.editmakanan', compact('makanan', 'kategoris', 'jenis_makanans')); } public function tambahMakanan(){ // Mengambil semua data kategori $kategoris = Kategori::all(); // Pastikan ini adalah koleksi Eloquent $jenis_makanans = JenisMakanan::all(); // Pastikan ini adalah koleksi Eloquent // Mengirim data ke view return view('admin.makanan.tambahmakanan', compact('kategoris', 'jenis_makanans')); } public function storemakanan(MakananRequest $request) { $validatedData = $request->validated(); // dd($validatedData); // Ganti koma dengan titik untuk input desimal $validatedData['lemak'] = str_replace(',', '.', $validatedData['lemak']); $validatedData['natrium'] = str_replace(',', '.', $validatedData['natrium']); $validatedData['energi'] = str_replace(',', '.', $validatedData['energi']); $validatedData['karbohidrat'] = str_replace(',', '.', $validatedData['karbohidrat']); // Simpan relasi kategori_id ke database $validatedData['kategori_id'] = $request->input('kategori_id'); $validatedData['jenis_id'] = $request->input('jenis_id'); // Simpan data makanan ke database Makanan::create($validatedData); return redirect()->route('makanan')->with('success', 'Makanan berhasil ditambahkan!'); } public function updatemakanan(UpdateMakananRequest $request, Makanan $makanan) { $validatedData = $request->validated(); // Simpan relasi kategori_id ke database $validatedData['kategori_id'] = $request->input('kategori_id'); $validatedData['jenis_id'] = $request->input('jenis_id'); // Ganti koma dengan titik untuk input desimal $validatedData['lemak'] = str_replace(',', '.', $validatedData['lemak']); $validatedData['natrium'] = str_replace(',', '.', $validatedData['natrium']); $validatedData['energi'] = str_replace(',', '.', $validatedData['energi']); $validatedData['karbohidrat'] = str_replace(',', '.', $validatedData['karbohidrat']); // Update data makanan di database $makanan->update($validatedData); return redirect()->route('makanan')->with('success', 'Makanan berhasil diperbarui!'); } public function deletemakanan(Makanan $makanan) { $makanan->delete(); return redirect()->route('makanan')->with('success', 'Makanan deleted successfully'); } public function kategori(){ $kategoris = Kategori::paginate(10); return view('admin.kategori.kategori', compact('kategoris')); } public function editkategori(Kategori $kategori){ return view('admin.kategori.editkategori', compact('kategori')); } public function tambahkategori(){ return view('admin.kategori.tambahkategori'); } public function storekategori(KategoriRequest $request){ $validatedData = $request->validated(); Kategori::create($validatedData); return redirect()->route('kategori'); } public function updatekategori(UpdateKategoriRequest $request, Kategori $kategori) { $validatedData = $request->validated(); $kategori->update($validatedData); return redirect()->route('kategori'); } public function deletekategori(Kategori $kategori) { $kategori->delete(); return redirect()->route('kategori')->with('success', 'user deleted successfully'); } public function jenismakanan() { $jenis_makanans = JenisMakanan::paginate(10); return view('admin.jenismakanan.jenismakanan', compact('jenis_makanans')); } public function editjenismakanan(JenisMakanan $jenis) { return view('admin.jenismakanan.editjenismakanan', compact('jenis')); } public function tambahjenismakanan() { return view('admin.jenismakanan.tambahjenismakanan'); } public function storejenismakanan(JenisMakananRequest $request) { $validatedData = $request->validated(); JenisMakanan::create($validatedData); return redirect()->route('jenismakanan'); } public function updatejenismakanan(UpdateJenisMakananRequest $request, JenisMakanan $jenis) { $validatedData = $request->validated(); $jenis->update($validatedData); return redirect()->route('jenismakanan'); } public function deletejenismakanan(JenisMakanan $jenis) { $jenis->delete(); return redirect()->route('jenismakanan')->with('success', 'Jenis makanan berhasil dihapus'); } public function komponen(){ $komponens = Komponen::paginate(10); // Add pagination with 10 items per page return view('admin.komponen.komponen', compact('komponens')); } public function editkomponen(Komponen $komponen){ return view('admin.komponen.editkomponen', compact('komponen')); } public function tambahkomponen(){ return view('admin.komponen.tambahkomponen'); } // public function storekomponen(KategoriRequest $request){ // $validatedData = $request->validated(); // Kategori::create($validatedData); // return redirect()->route('kategori'); // } // public function updatekategori(UpdateKategoriRequest $request, Kategori $kategori) // { // $validatedData = $request->validated(); // $kategori->update($validatedData); // return redirect()->route('kategori'); // } public function deletekomponen(Komponen $komponen) { $komponen->delete(); return redirect()->route('komponen')->with('success', 'Komponen berhasil dihapus'); } public function waktumakan(){ $waktu_makans = WaktuMakan::paginate(10); // Add pagination with 10 items per page return view('admin.waktumakan.waktumakan', compact('waktu_makans')); } public function editwaktumakan(WaktuMakan $waktumakan){ return view('admin.waktumakan.editwaktumakan', compact('waktumakan')); } public function tambahwaktumakan(){ return view('admin.waktumakan.tambahwaktumakan'); } // public function storekomponen(KategoriRequest $request){ // $validatedData = $request->validated(); // Kategori::create($validatedData); // return redirect()->route('kategori'); // } // public function updatekategori(UpdateKategoriRequest $request, Kategori $kategori) // { // $validatedData = $request->validated(); // $kategori->update($validatedData); // return redirect()->route('kategori'); // } public function deletewaktumakan(WaktuMakan $waktumakan) { $waktumakan->delete(); return redirect()->route('waktumakan')->with('success', 'Waktu makan berhasil dihapus'); } public function index() { $relasis = MakananKomponenWaktu::with(['makanan', 'komponen', 'waktuMakan']) ->orderBy('created_at', 'desc') ->paginate(10); return view('admin.relasi.relasi', compact('relasis')); } public function store(Request $request) { $validatedData = $request->validate([ 'makanan_id' => 'required|exists:makanans,id', 'komponen_id' => 'required|exists:komponens,id', 'waktu_makan_id' => 'required|exists:waktu_makans,id', 'status' => 'required|boolean' ]); try { MakananKomponenWaktu::create($validatedData); return redirect()->route('relasi.index')->with('success', 'Relasi berhasil ditambahkan!'); } catch (\Illuminate\Database\QueryException $e) { if ($e->errorInfo[1] == 1062) { // MySQL error code for duplicate entry return redirect()->back() ->withInput() ->with('error', 'Relasi ini sudah ada dalam database.'); } return redirect()->back() ->withInput() ->with('error', 'Terjadi kesalahan: ' . $e->getMessage()); } } public function edit($id) { $relasi = MakananKomponenWaktu::findOrFail($id); $makanans = Makanan::all(); $komponens = Komponen::all(); $waktuMakans = WaktuMakan::all(); return view('admin.relasi.edit', compact('relasi', 'makanans', 'komponens', 'waktuMakans')); } public function update(Request $request, $id) { $validatedData = $request->validate([ 'makanan_id' => 'required|exists:makanans,id', 'komponen_id' => 'required|exists:komponens,id', 'waktu_makan_id' => 'required|exists:waktu_makans,id', 'status' => 'required|boolean' ]); try { $relasi = MakananKomponenWaktu::findOrFail($id); $relasi->update($validatedData); return redirect()->route('relasi.index')->with('success', 'Relasi berhasil diperbarui!'); } catch (\Illuminate\Database\QueryException $e) { if ($e->errorInfo[1] == 1062) { // MySQL error code for duplicate entry return redirect()->back() ->withInput() ->with('error', 'Relasi ini sudah ada dalam database.'); } return redirect()->back() ->withInput() ->with('error', 'Terjadi kesalahan: ' . $e->getMessage()); } catch (\Exception $e) { return redirect()->back() ->withInput() ->with('error', 'Terjadi kesalahan: ' . $e->getMessage()); } } public function destroy($id) { $relasi = MakananKomponenWaktu::findOrFail($id); $relasi->delete(); return redirect()->back()->with('success', 'Relasi berhasil dihapus.'); } public function create() { $makanans = Makanan::all(); $komponens = Komponen::all(); $waktuMakans = WaktuMakan::all(); return view('admin.relasi.create', compact('makanans', 'komponens', 'waktuMakans')); } }