MIF_E31230596_SimpaudKartoh.../app/Http/Controllers/Admin/WaliMuridController.php

75 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\WaliMurid;
use Illuminate\Http\Request;
class WaliMuridController extends Controller
{
public function index()
{
$walis = WaliMurid::latest()->get();
return view('admin.wali.index', compact('walis'));
}
public function create()
{
return view('admin.wali.create');
}
public function store(Request $request)
{
$request->validate([
'nama_wali' => 'required|string|max:100',
'no_hp' => 'nullable|string|max:20',
'alamat' => 'nullable|string',
]);
WaliMurid::create($request->all());
return redirect()->route('wali-murid.index')->with('success', 'Data Wali Murid berhasil ditambahkan.');
}
public function edit($id)
{
$wali = WaliMurid::findOrFail($id);
return view('admin.wali.edit', compact('wali'));
}
public function update(Request $request, $id)
{
$wali = WaliMurid::findOrFail($id);
$request->validate([
'nama_wali' => 'required|string|max:100',
'no_hp' => 'nullable|string|max:20',
'alamat' => 'nullable|string',
]);
$wali->update($request->all());
return redirect()->route('wali-murid.index')->with('success', 'Data Wali Murid berhasil diperbarui.');
}
public function destroy($id)
{
$wali = WaliMurid::findOrFail($id);
// --- LOGIC AMAN (Mencegah Error Database) ---
// Cek apakah wali ini punya anak didik (siswa)
// Pastikan di Model WaliMurid sudah ada relasi: public function siswas()
$jumlah_siswa = $wali->siswas()->count();
if ($jumlah_siswa > 0) {
// Jika masih punya siswa, BATALKAN hapus & beri pesan Error
return redirect()->route('wali-murid.index')->with('error', '❌ Gagal Hapus! Wali ini masih terhubung dengan ' . $jumlah_siswa . ' data Siswa. Hapus atau pindahkan data siswanya dulu.');
}
// Jika tidak punya siswa, baru boleh dihapus
$wali->delete();
return redirect()->route('wali-murid.index')->with('success', '✅ Data Wali Murid berhasil dihapus.');
}
}