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 @@
@csrf - + - + - + - +
+ + Kembali ke Data Siswa - + \ No newline at end of file diff --git a/resources/views/siswa/edit.blade.php b/resources/views/siswa/edit.blade.php index 141e087..1269702 100644 --- a/resources/views/siswa/edit.blade.php +++ b/resources/views/siswa/edit.blade.php @@ -73,25 +73,35 @@

Edit Data Siswa

+ @if($errors->any()) +
+ @foreach($errors->all() as $error) +

{{ $error }}

+ @endforeach +
+ @endif +
@csrf @method('PUT') - + - + - + - +
+ + Kembali ke Data Siswa
- + \ No newline at end of file diff --git a/resources/views/siswa/index.blade.php b/resources/views/siswa/index.blade.php index 7fb8d69..74da6ca 100644 --- a/resources/views/siswa/index.blade.php +++ b/resources/views/siswa/index.blade.php @@ -91,6 +91,9 @@ @if(session('success'))
{{ session('success') }}
@endif + @if(session('error')) +
{{ session('error') }}
+ @endif @if(count($siswas) > 0) @@ -105,15 +108,21 @@ - @foreach($siswas as $index => $siswa) + @foreach($siswas as $id => $siswa) - + @endforeach @@ -126,4 +135,4 @@ + Tambah Data Siswa - + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index ce4db41..e0ebf24 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,12 +12,19 @@ Route::get('/about', function () { return view('about'); }); +// Halaman Utama Data Siswa Route::get('/datasiswa', [SiswaController::class, 'index'])->name('siswa.index'); -Route::get('/siswa/create', [SiswaController::class, 'create'])->name('siswa.create'); -Route::post('/siswa', [SiswaController::class, 'store'])->name('siswa.store'); -Route::get('/siswa/{id}/edit', [SiswaController::class, 'edit'])->name('siswa.edit'); -Route::put('/siswa/{id}', [SiswaController::class, 'update'])->name('siswa.update'); +// Tambah Data Siswa +Route::get('/datasiswa/create', [SiswaController::class, 'create'])->name('siswa.create'); +Route::post('/datasiswa', [SiswaController::class, 'store'])->name('siswa.store'); -Route::get('/datasiswa/{id}', [SiswaController::class, 'show']); -Route::get('/datasiswa/{id}', [SiswaController::class, 'show'])->name('siswa.show'); \ No newline at end of file +// Edit & Update Data Siswa +Route::get('/datasiswa/{id}/edit', [SiswaController::class, 'edit'])->name('siswa.edit'); +Route::put('/datasiswa/{id}', [SiswaController::class, 'update'])->name('siswa.update'); + +// Detail Data Siswa +Route::get('/datasiswa/{id}', [SiswaController::class, 'show'])->name('siswa.show'); + +// Hapus Data Siswa +Route::delete('/datasiswa/{id}', [SiswaController::class, 'destroy'])->name('siswa.destroy');
{{ $index + 1 }}{{ $loop->iteration }} {{ $siswa['nama'] }} {{ $siswa['kelas'] }} {{ $siswa['umur'] }} {{ $siswa['absen'] }} - Edit + Edit + +
+ @csrf + @method('DELETE') + +