diff --git a/app/Http/Controllers/SiswaController.php b/app/Http/Controllers/SiswaController.php index 68b9ead..5b87451 100644 --- a/app/Http/Controllers/SiswaController.php +++ b/app/Http/Controllers/SiswaController.php @@ -2,14 +2,14 @@ namespace App\Http\Controllers; +use App\Models\Siswa; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Cache; class SiswaController extends Controller { public function index() { - $siswas = Cache::get('siswas', []); + $siswas = Siswa::all(); return view('siswa.index', compact('siswas')); } @@ -21,33 +21,30 @@ class SiswaController extends Controller public function store(Request $request) { $request->validate([ - 'nama' => 'required', - 'kelas' => 'required', + 'nama' => 'required|string|max:255', + 'kelas' => 'required|string|max:50', 'umur' => 'required|integer', 'absen' => 'required|integer', ]); - $siswas = Cache::get('siswas', []); - $index = count($siswas) + 1; - - $siswas[$index] = [ + Siswa::create([ 'nama' => $request->nama, 'kelas' => $request->kelas, 'umur' => $request->umur, 'absen' => $request->absen, - ]; + ]); - Cache::put('siswas', $siswas, null); - - return redirect()->route('siswa.index')->with('success', 'Data berhasil ditambahkan ke cache!'); + return redirect()->route('siswa.index')->with('success', 'Data berhasil ditambahkan!'); } public function edit($id) { - $siswas = Cache::get('siswas', []); - if (!isset($siswas[$id])) return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan'); + $siswa = Siswa::find($id); + + if (!$siswa) { + return view('siswa.notfound', ['id' => $id]); + } - $siswa = $siswas[$id]; return view('siswa.edit', compact('siswa', 'id')); } @@ -60,43 +57,42 @@ class SiswaController extends Controller 'absen' => 'required|integer', ]); - $siswas = Cache::get('siswas', []); - if (!isset($siswas[$id])) return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan'); + $siswa = Siswa::find($id); - $siswas[$id] = [ + if (!$siswa) { + return view('siswa.notfound', ['id' => $id]); + } + + $siswa->update([ 'nama' => $request->nama, 'kelas' => $request->kelas, 'umur' => $request->umur, 'absen' => $request->absen, - ]; - - Cache::put('siswas', $siswas, 600); + ]); return redirect()->route('siswa.index')->with('success', 'Data siswa berhasil diupdate!'); } public function show($id) { - $siswas = Cache::get('siswas', []); - if (!isset($siswas[$id])) { + $siswa = Siswa::find($id); + + if (!$siswa) { return view('siswa.notfound', ['id' => $id]); } - $siswa = $siswas[$id]; - - return view('siswa.detail', compact('id', 'siswa')); + return view('siswa.detail', compact('siswa')); } public function destroy($id) { - $siswas = Cache::get('siswas', []); - if (!isset($siswas[$id])) { - return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan'); + $siswa = Siswa::find($id); + + if ($siswa) { + $siswa->delete(); + return redirect()->route('siswa.index')->with('success', 'Data berhasil dihapus.'); } - unset($siswas[$id]); - Cache::put('siswas', $siswas, 600); - - return redirect()->route('siswa.index')->with('success', 'Data berhasil dihapus!'); + return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan.'); } -} \ No newline at end of file +} diff --git a/app/Models/Siswa.php b/app/Models/Siswa.php new file mode 100644 index 0000000..c057f55 --- /dev/null +++ b/app/Models/Siswa.php @@ -0,0 +1,14 @@ +id(); + $table->string('nama'); + $table->string('kelas'); + $table->integer('umur'); + $table->integer('absen'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('siswa'); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..4cf5185 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -15,9 +15,8 @@ class DatabaseSeeder extends Seeder { // User::factory(10)->create(); - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', + $this->call([ + SiswaSeeder::class, ]); } } diff --git a/database/seeders/SiswaSeeder.php b/database/seeders/SiswaSeeder.php new file mode 100644 index 0000000..05a4823 --- /dev/null +++ b/database/seeders/SiswaSeeder.php @@ -0,0 +1,30 @@ + 'syifa', + 'kelas' => 'XIII', + 'umur' => 19, + 'absen' => 34, + ]); + + Siswa::create([ + 'nama' => 'syifa maulidya', + 'kelas' => 'XIII SIJA A', + 'umur' => 18, + 'absen' => 35, + ]); + } +} diff --git a/resources/views/siswa/detail.blade.php b/resources/views/siswa/detail.blade.php index aa2a0b6..d4d2ab3 100644 --- a/resources/views/siswa/detail.blade.php +++ b/resources/views/siswa/detail.blade.php @@ -83,12 +83,12 @@ Absen - {{ $id }} - {{ $siswa['nama'] }} - {{ $siswa['kelas'] }} - {{ $siswa['umur'] }} - {{ $siswa['absen'] }} - + {{ $siswa->id }} + {{ $siswa->nama }} + {{ $siswa->kelas }} + {{ $siswa->umur }} + {{ $siswa->absen }} +
diff --git a/resources/views/siswa/edit.blade.php b/resources/views/siswa/edit.blade.php index 1269702..0207cd2 100644 --- a/resources/views/siswa/edit.blade.php +++ b/resources/views/siswa/edit.blade.php @@ -82,8 +82,8 @@ @endif
- @csrf - @method('PUT') + @csrf + @method('PUT') diff --git a/resources/views/siswa/index.blade.php b/resources/views/siswa/index.blade.php index 74da6ca..0dba718 100644 --- a/resources/views/siswa/index.blade.php +++ b/resources/views/siswa/index.blade.php @@ -108,24 +108,23 @@ - @foreach($siswas as $id => $siswa) - - {{ $loop->iteration }} - {{ $siswa['nama'] }} - {{ $siswa['kelas'] }} - {{ $siswa['umur'] }} - {{ $siswa['absen'] }} - - Edit - - - @csrf - @method('DELETE') - -
- - - @endforeach + @foreach($siswas as $siswa) + + {{ $loop->iteration }} + {{ $siswa->nama }} + {{ $siswa->kelas }} + {{ $siswa->umur }} + {{ $siswa->absen }} + + Edit +
+ @csrf + @method('DELETE') + +
+ + +@endforeach @else