From 0b96fd767e0ea650981c6dda17f61e6e35b79646 Mon Sep 17 00:00:00 2001 From: Rizky Date: Thu, 24 Apr 2025 18:33:58 +0700 Subject: [PATCH] CRUD Kelas --- app/Http/Controllers/KelasController.php | 44 ++++++++++++++++++- .../views/admin/component/sidebar.blade.php | 4 +- resources/views/admin/kelas/create.blade.php | 32 ++++++++++++++ resources/views/admin/kelas/edit.blade.php | 35 +++++++++++++++ .../index.blade.php} | 12 ++--- routes/web.php | 12 ++++- 6 files changed, 128 insertions(+), 11 deletions(-) create mode 100644 resources/views/admin/kelas/create.blade.php create mode 100644 resources/views/admin/kelas/edit.blade.php rename resources/views/admin/{kelas.blade.php => kelas/index.blade.php} (74%) diff --git a/app/Http/Controllers/KelasController.php b/app/Http/Controllers/KelasController.php index 90da538..c7f54bf 100644 --- a/app/Http/Controllers/KelasController.php +++ b/app/Http/Controllers/KelasController.php @@ -2,13 +2,53 @@ namespace App\Http\Controllers; +use App\Models\Jurusan; use App\Models\Kelas; use Illuminate\Http\Request; class KelasController extends Controller { public function index(){ - $kelas = Kelas::select('id', 'nama_kelas')->with(['jurusan:id,nama_jurusan'])->get(); - return view('admin.kelas', compact('kelas')); + $kelas = Kelas::with('jurusan')->get(); + return view('admin.kelas.index', compact('kelas')); + } + + public function create(){ + $jurusan = Jurusan::all(); + return view('admin.kelas.create', compact('jurusan')); + } + + public function store(Request $request){ + $request->validate([ + 'nama_kelas' => 'required', + 'id_jurusan' => 'required|exists:jurusan,id', + ]); + + Kelas::create($request->all()); + + return redirect()->route('admin.kelas.index')->with('success', 'Kelas berhasil ditambahkan'); + } + + public function edit(Kelas $kelas) + { + $jurusan = Jurusan::all(); + return view('admin.kelas.edit', compact('kelas', 'jurusan')); + } + + public function update(Request $request, Kelas $kelas){ + $request->validate([ + 'nama_kelas' => 'required', + 'id_jurusan' => 'required|exists:jurusan,id', + ]); + + $kelas->update($request->all()); + + return redirect()->route('admin.kelas.index')->with('success', 'Kelas berhasil diperbarui'); + } + + public function destroy(Kelas $kelas) + { + $kelas->delete(); + return redirect()->route('admin.kelas.index')->with('success', 'Kelas berhasil dihapus'); } } diff --git a/resources/views/admin/component/sidebar.blade.php b/resources/views/admin/component/sidebar.blade.php index d4a3e56..c8158ef 100644 --- a/resources/views/admin/component/sidebar.blade.php +++ b/resources/views/admin/component/sidebar.blade.php @@ -43,8 +43,8 @@ class="block p-2 rounded-lg {{ request()->is('admin/siswa') ? 'bg-blue-100 text-
  • Guru
  • -
  • Kelas +
  • Kelas
  • Jurusan diff --git a/resources/views/admin/kelas/create.blade.php b/resources/views/admin/kelas/create.blade.php new file mode 100644 index 0000000..4140c61 --- /dev/null +++ b/resources/views/admin/kelas/create.blade.php @@ -0,0 +1,32 @@ +@extends('layouts.dashboard') + +@section('title', 'Tambah Kelas') + +@section('content') +
    +

    Tambah Kelas

    +
    + @csrf + +
    + + +
    + +
    + + +
    + +
    + Batal + +
    +
    +
    +@endsection diff --git a/resources/views/admin/kelas/edit.blade.php b/resources/views/admin/kelas/edit.blade.php new file mode 100644 index 0000000..7076262 --- /dev/null +++ b/resources/views/admin/kelas/edit.blade.php @@ -0,0 +1,35 @@ +@extends('layouts.dashboard') + +@section('title', 'Edit Kelas') + +@section('content') +
    +

    Edit Kelas

    +
    + @csrf + @method('PUT') + +
    + + +
    + +
    + + +
    + +
    + Batal + +
    +
    +
    +@endsection diff --git a/resources/views/admin/kelas.blade.php b/resources/views/admin/kelas/index.blade.php similarity index 74% rename from resources/views/admin/kelas.blade.php rename to resources/views/admin/kelas/index.blade.php index 1c54936..4236d72 100644 --- a/resources/views/admin/kelas.blade.php +++ b/resources/views/admin/kelas/index.blade.php @@ -7,7 +7,7 @@
    @@ -27,10 +27,12 @@ {{ $index + 1 }} {{ $item->nama_kelas }} - {{ $item->nama_jurusan }} + + {{ $item->jurusan ? $item->jurusan->nama_jurusan : '-' }} + - Edit -
    + Edit + @csrf @method('DELETE')
    -@endsection \ No newline at end of file +@endsection diff --git a/routes/web.php b/routes/web.php index 40d5023..445dae2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -45,8 +45,16 @@ Route::get('/guru', [GuruController::class, 'index'])->name('admin.guru'); // Kelas - Route::get('/kelas', [KelasController::class, 'index'])->name('admin.kelas'); - + Route::resource('kelas', KelasController::class)->parameters([ + 'kelas' => 'kelas', + ])->names([ + 'index' => 'admin.kelas.index', + 'create' => 'admin.kelas.create', + 'store' => 'admin.kelas.store', + 'edit' => 'admin.kelas.edit', + 'update' => 'admin.kelas.update', + 'destroy' => 'admin.kelas.destroy', + ]); // Jurusan Route::resource('jurusan', JurusanController::class)->names([ 'index' => 'admin.jurusan.index',