MIF_E31222307/app/Http/Controllers/RekomendasiAhliController.php

72 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\RekomendasiAhli;
use App\Models\WaktuMakan;
use App\Models\Komponen;
use App\Models\Makanan;
use Illuminate\Http\Request;
class RekomendasiAhliController extends Controller
{
public function index()
{
// Ambil semua data rekomendasi ahli beserta relasi
$rekomendasiAhli = \App\Models\RekomendasiAhli::with(['komponen', 'makanan', 'waktuMakan'])->get();
// Group by hari
$rekomendasiByHari = $rekomendasiAhli->groupBy('hari');
// Ambil semua hari (urutan enum)
$daftarHari = ['Senin','Selasa','Rabu','Kamis','Jumat','Sabtu','Minggu'];
return view('admin.rekomendasi-ahli-list', compact('rekomendasiByHari', 'daftarHari'));
}
public function create(Request $request)
{
$hari = $request->query('hari');
$waktuMakans = WaktuMakan::all();
$komponens = Komponen::all();
$makanans = Makanan::all();
return view('admin.rekomendasi-ahli.create', compact('hari', 'waktuMakans', 'komponens', 'makanans'));
}
public function store(Request $request)
{
$request->validate([
'makanan_id' => 'required|exists:makanans,id',
'komponen_id' => 'required|exists:komponens,id',
'waktu_makan_id' => 'required|exists:waktu_makans,id',
'hari' => 'required'
]);
RekomendasiAhli::create($request->all());
return redirect()->route('rekomendasi_ahli.index')->with('success', 'Rekomendasi ahli berhasil ditambahkan.');
}
public function edit($id)
{
$rekomendasi = RekomendasiAhli::findOrFail($id);
$waktuMakans = WaktuMakan::all();
$komponens = Komponen::all();
$makanans = Makanan::all();
return view('admin.rekomendasi-ahli.edit', compact('rekomendasi', 'waktuMakans', 'komponens', 'makanans'));
}
public function update(Request $request, $id)
{
$request->validate([
'makanan_id' => 'required|exists:makanans,id',
'komponen_id' => 'required|exists:komponens,id',
'waktu_makan_id' => 'required|exists:waktu_makans,id',
'hari' => 'required'
]);
$rekomendasi = RekomendasiAhli::findOrFail($id);
$rekomendasi->update($request->all());
return redirect()->route('rekomendasi_ahli.index')->with('success', 'Rekomendasi ahli berhasil diupdate.');
}
public function destroy($id)
{
RekomendasiAhli::findOrFail($id)->delete();
return redirect()->route('rekomendasi_ahli.index')->with('success', 'Rekomendasi ahli berhasil dihapus.');
}
}