diff --git a/app/Http/Controllers/SiswaController.php b/app/Http/Controllers/SiswaController.php index 63aa8f6..68b9ead 100644 --- a/app/Http/Controllers/SiswaController.php +++ b/app/Http/Controllers/SiswaController.php @@ -3,14 +3,13 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Cache; class SiswaController extends Controller { - private $siswas = []; - public function index() { - $siswas = session('siswas', []); + $siswas = Cache::get('siswas', []); return view('siswa.index', compact('siswas')); } @@ -21,36 +20,34 @@ class SiswaController extends Controller public function store(Request $request) { - $request->validate([ - 'nama' => 'required', - 'kelas' => 'required', - 'umur' => 'required|integer', - 'absen' => 'required|integer', - ]); + $request->validate([ + 'nama' => 'required', + 'kelas' => 'required', + 'umur' => 'required|integer', + 'absen' => 'required|integer', + ]); - $siswas = session('siswas', []); + $siswas = Cache::get('siswas', []); + $index = count($siswas) + 1; - // Index mulai dari 1 - $index = count($siswas) + 1; + $siswas[$index] = [ + 'nama' => $request->nama, + 'kelas' => $request->kelas, + 'umur' => $request->umur, + 'absen' => $request->absen, + ]; - $siswas[$index] = [ - 'nama' => $request->nama, - 'kelas' => $request->kelas, - 'umur' => $request->umur, - 'absen' => $request->absen, - ]; + Cache::put('siswas', $siswas, null); - session(['siswas' => $siswas]); - - return redirect()->route('siswa.index')->with('success', 'Data berhasil ditambahkan!'); + return redirect()->route('siswa.index')->with('success', 'Data berhasil ditambahkan ke cache!'); } public function edit($id) { - $siswas = session('siswas', []); + $siswas = Cache::get('siswas', []); if (!isset($siswas[$id])) return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan'); - $siswa = $siswas[$id]; + $siswa = $siswas[$id]; return view('siswa.edit', compact('siswa', 'id')); } @@ -63,7 +60,7 @@ class SiswaController extends Controller 'absen' => 'required|integer', ]); - $siswas = session('siswas', []); + $siswas = Cache::get('siswas', []); if (!isset($siswas[$id])) return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan'); $siswas[$id] = [ @@ -72,38 +69,34 @@ class SiswaController extends Controller 'umur' => $request->umur, 'absen' => $request->absen, ]; - session(['siswas' => $siswas]); + + Cache::put('siswas', $siswas, 600); return redirect()->route('siswa.index')->with('success', 'Data siswa berhasil diupdate!'); } - + public function show($id) { - $siswa = [ - 1 => [ - 'nama' => 'syifa', - 'kelas' => 'XIII', - 'umur' => 19, - 'absen' => 34 - ], - 2 => [ - 'nama' => 'cipa', - 'kelas' => 'XIII SIJA A', - 'umur' => 18, - 'absen' => 35 - ] - ]; + $siswas = Cache::get('siswas', []); + if (!isset($siswas[$id])) { + return view('siswa.notfound', ['id' => $id]); + } - // Jika data tidak ditemukan, tampilkan halaman khusus - if (!isset($siswa[$id])) { - return view('siswa.notfound', ['id' => $id]); + $siswa = $siswas[$id]; + + return view('siswa.detail', compact('id', 'siswa')); } - return view('siswa.detail', [ - 'id' => $id, - 'siswa' => $siswa[$id] - ]); -} -} + public function destroy($id) + { + $siswas = Cache::get('siswas', []); + if (!isset($siswas[$id])) { + return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan'); + } + unset($siswas[$id]); + Cache::put('siswas', $siswas, 600); + return redirect()->route('siswa.index')->with('success', 'Data berhasil dihapus!'); + } +} \ No newline at end of file diff --git a/config/cache.php b/config/cache.php index c2d927d..b279bff 100644 --- a/config/cache.php +++ b/config/cache.php @@ -15,7 +15,7 @@ return [ | */ - 'default' => env('CACHE_STORE', 'database'), + 'default' => env('CACHE_STORE', 'file'), /* |-------------------------------------------------------------------------- diff --git a/resources/views/siswa/create.blade.php b/resources/views/siswa/create.blade.php index c0c3eaf..38ee1c9 100644 --- a/resources/views/siswa/create.blade.php +++ b/resources/views/siswa/create.blade.php @@ -92,20 +92,22 @@
+ + Kembali ke Data Siswa