From 409c182eb499e0345ad36114006346301234266a Mon Sep 17 00:00:00 2001 From: Rizky Date: Mon, 19 May 2025 13:33:14 +0700 Subject: [PATCH] update guru --- app/Http/Controllers/GuruController.php | 54 ++++++- database/seeders/DatabaseSeeder.php | 3 +- database/seeders/GuruSeeder.php | 37 +++++ package-lock.json | 10 +- .../views/admin/component/sidebar.blade.php | 2 +- resources/views/admin/guru.blade.php | 52 ------- resources/views/admin/guru/create.blade.php | 136 ++++++++++++++++++ resources/views/admin/guru/edit.blade.php | 109 ++++++++++++++ resources/views/admin/guru/index.blade.php | 80 +++++++++++ routes/web.php | 9 +- 10 files changed, 430 insertions(+), 62 deletions(-) create mode 100644 database/seeders/GuruSeeder.php delete mode 100644 resources/views/admin/guru.blade.php create mode 100644 resources/views/admin/guru/create.blade.php create mode 100644 resources/views/admin/guru/edit.blade.php create mode 100644 resources/views/admin/guru/index.blade.php diff --git a/app/Http/Controllers/GuruController.php b/app/Http/Controllers/GuruController.php index 1c2059d..d9beec1 100644 --- a/app/Http/Controllers/GuruController.php +++ b/app/Http/Controllers/GuruController.php @@ -8,7 +8,57 @@ class GuruController extends Controller { public function index(){ - $guru = Guru::select('id', 'nama_guru', 'jabatan', 'no_hp_guru', 'email_guru')->get(); - return view('admin.guru', compact('guru')); + $guru = Guru::all(); + return view('admin.guru.index', compact('guru')); + } + + public function create(){ + return view('admin.guru.create'); + } + + public function store(Request $request){ + $request->validate([ + 'nama_guru' => 'required|string|max:255', + 'jabatan' => 'required|string|max:255', + 'no_hp_guru' => 'required|numeric', + 'email_guru' => 'required|email|unique:guru,email_guru', + ]); + + Guru::create([ + 'nama_guru' => $request->nama_guru, + 'jabatan' => $request->jabatan, + 'no_hp_guru' => $request->no_hp_guru, + 'email_guru' => $request->email_guru + ]); + + return redirect()->route('admin.guru.index')->with('success', 'Guru berhasil ditambahkan'); + } + + public function edit($id){ + $guru = Guru::findOrFail($id); + return view('admin.guru.edit', compact('guru')); + } + + public function update(Request $request, Guru $guru){ + $request->validate([ + 'nama_guru' => 'required|string|max:255', + 'jabatan' => 'required|string|max:255', + 'no_hp_guru' => 'required|numeric', + 'email_guru' => 'required|email|unique:guru,email_guru,' . $guru->id, + ]); + + $guru->update([ + 'nama_guru' => $request->nama_guru, + 'jabatan' => $request->jabatan, + 'no_hp_guru' => $request->no_hp_guru, + 'email_guru' => $request->email_guru + ]); + + return redirect()->route('admin.guru.index')->with('success', 'Guru berhasil di update'); + } + + public function destroy(Guru $guru){ + $guru->delete(); + return redirect()->route('admin.guru.index')->with('success', 'Guru berhasil dihapus'); } } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 8977709..92bc9d6 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -18,7 +18,8 @@ public function run(): void JurusanSeeder::class, KelasSeeder::class, SiswaTableSeeder::class, - StatusSeeder::class + StatusSeeder::class, + GuruSeeder::class ]); } } diff --git a/database/seeders/GuruSeeder.php b/database/seeders/GuruSeeder.php new file mode 100644 index 0000000..ecbeac7 --- /dev/null +++ b/database/seeders/GuruSeeder.php @@ -0,0 +1,37 @@ + 'Ridwan', + 'jabatan' => 'Guru', + 'no_hp_guru' => '081234567', + 'email_guru' => 'ridwan@gmail' + ], + [ + 'nama_guru' => 'Jamal', + 'jabatan' => 'Guru', + 'no_hp_guru' => '0891238217', + 'email_guru' => 'jamal@gmail' + ], + [ + 'nama_guru' => 'Budi Speed', + 'jabatan' => 'Guru', + 'no_hp_guru' => '08192312', + 'email_guru' => 'Budi Speed@gmail' + ] + ]); + } +} diff --git a/package-lock.json b/package-lock.json index f432c95..f6e6177 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3221,17 +3221,17 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.2.tgz", - "integrity": "sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==", + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "license": "MIT", "dependencies": { "esbuild": "^0.25.0", - "fdir": "^6.4.3", + "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", - "tinyglobby": "^0.2.12" + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" diff --git a/resources/views/admin/component/sidebar.blade.php b/resources/views/admin/component/sidebar.blade.php index 25a4640..10a2620 100644 --- a/resources/views/admin/component/sidebar.blade.php +++ b/resources/views/admin/component/sidebar.blade.php @@ -40,7 +40,7 @@ class="dropdown-btn w-full text-left p-2 bg-gray-100 rounded-lg flex justify-bet
  • Siswa
  • -
  • Guru
  • - - -
    - - - - - - - - - - - - - @foreach ($guru as $index => $item) - - - - - - - - - @endforeach - -
    NoNama GuruJabatanNo HPEmailAksi
    {{ $index + 1 }}{{ $item->nama_guru }}{{ $item->jabatan }}{{ $item->no_hp_guru }}{{ $item->email_guru }} - Edit -
    - @csrf - @method('DELETE') - -
    -
    -
    - - -@endsection \ No newline at end of file diff --git a/resources/views/admin/guru/create.blade.php b/resources/views/admin/guru/create.blade.php new file mode 100644 index 0000000..9577eba --- /dev/null +++ b/resources/views/admin/guru/create.blade.php @@ -0,0 +1,136 @@ +@extends('layouts.dashboard') + +@section('title', 'Smart School | Tambah Guru') + +@section('content') +
    + +
    +
    +

    Tambah Guru Baru

    +
    + + + +

    Tambahkan data guru baru ke sistem

    +
    +
    + + + + + + Kembali ke Daftar + +
    + + +
    + +
    +

    + + + + Form Tambah Guru +

    +
    + + +
    +
    + @csrf + + +
    + + + @error('nama_guru') +

    {{ $message }}

    + @enderror +
    + + +
    + + + @error('jabatan') +

    {{ $message }}

    + @enderror +
    + + +
    + + + @error('no_hp_guru') +

    {{ $message }}

    + @enderror +
    + + +
    + + + @error('email_guru') +

    {{ $message }}

    + @enderror +
    + + +
    + + +
    +
    +
    +
    +
    + + + + + +@endsection diff --git a/resources/views/admin/guru/edit.blade.php b/resources/views/admin/guru/edit.blade.php new file mode 100644 index 0000000..d8e865b --- /dev/null +++ b/resources/views/admin/guru/edit.blade.php @@ -0,0 +1,109 @@ +@extends('layouts.dashboard') + +@section('title', 'Smart School | Edit Guru') + +@section('content') +
    + +
    +
    +

    Edit Data Guru

    +
    + + + +

    Ubah informasi guru yang sudah ada

    +
    +
    + + + + + + Kembali ke Daftar + +
    + + +
    + +
    +

    + + + + + Form Edit Guru +

    +
    + + +
    +
    + @csrf + @method('PUT') + + +
    + + + @error('nama_guru') +

    {{ $message }}

    + @enderror +
    + + +
    + + + @error('jabatan') +

    {{ $message }}

    + @enderror +
    + + +
    + + + @error('no_hp_guru') +

    {{ $message }}

    + @enderror +
    + + +
    + + + @error('email_guru') +

    {{ $message }}

    + @enderror +
    + + +
    + + Batal + + +
    +
    +
    +
    +
    +@endsection diff --git a/resources/views/admin/guru/index.blade.php b/resources/views/admin/guru/index.blade.php new file mode 100644 index 0000000..8d6a62a --- /dev/null +++ b/resources/views/admin/guru/index.blade.php @@ -0,0 +1,80 @@ +@extends('layouts.dashboard') + +@section('title', 'Smart School | Guru') + +@section('content') +
    + +
    +
    +

    Manajemen Guru

    +
    + + + + Kelola data guru dan informasi kontaknya +
    +
    + + + + + + Tambah Guru + +
    + + +
    +
    +

    Daftar Guru

    +

    Data guru yang terdaftar di sistem

    +
    +
    + + + + + + + + + + + + + @foreach ($guru as $index => $item) + + + + + + + + + @endforeach + + @if($guru->isEmpty()) + + + + @endif + +
    NoNama GuruJabatanNo HPEmailAksi
    {{ $index + 1 }}{{ $item->nama_guru }}{{ $item->jabatan }}{{ $item->no_hp_guru }}{{ $item->email_guru }} + + Edit + +
    + @csrf + @method('DELETE') + +
    +
    + Tidak ada data guru. +
    +
    +
    +
    +@endsection diff --git a/routes/web.php b/routes/web.php index 36f7585..1702654 100644 --- a/routes/web.php +++ b/routes/web.php @@ -49,7 +49,14 @@ // Guru - Route::get('/guru', [GuruController::class, 'index'])->name('admin.guru'); + Route::controller(GuruController::class)->group(function () { + Route::get('/guru', 'index')->name('admin.guru.index'); // halaman utama guru + Route::get('/guru/create', 'create')->name('admin.guru.create'); // form tambah guru + Route::post('/guru', 'store')->name('admin.guru.store'); // simpan guru baru + Route::get('/guru/{id}/edit', 'edit')->name('admin.guru.edit'); // form edit guru + Route::put('/guru/{id}', 'update')->name('admin.guru.update'); // simpan update guru + Route::delete('/guru/{id}', 'destroy')->name('admin.guru.destroy'); // hapus guru + }); // Kelas Route::resource('kelas', KelasController::class)->parameters([