orderBy('created_at', 'desc')->get(); return view('admin.siswa.index', compact('siswas')); } public function create() { $kelas = Kelas::all(); $wali_murids = WaliMurid::all(); return view('admin.siswa.create', compact('kelas', 'wali_murids')); } public function store(Request $request) { $validated = $request->validate([ 'nama' => 'required|string|max:255', 'tempat_lahir' => 'nullable|string|max:255', 'tanggal_lahir' => 'nullable|date', 'alamat' => 'nullable|string', 'kelas_id' => 'nullable|exists:kelas,id', 'wali_id' => 'nullable|exists:wali_murids,id', 'keterangan' => 'nullable|string', 'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:2048', ]); if ($request->hasFile('foto')) { $validated['foto'] = $request->file('foto')->store('fotosiswa', 'public'); } Siswa::create($validated); return redirect()->route('siswa.index')->with('success', 'Data peserta didik berhasil ditambahkan.'); } public function edit(Siswa $siswa) { $kelas = Kelas::all(); $wali_murids = WaliMurid::all(); return view('admin.siswa.edit', compact('siswa', 'kelas', 'wali_murids')); } public function update(Request $request, Siswa $siswa) { $request->validate([ 'nama' => 'required|string|max:255', 'tempat_lahir' => 'nullable|string|max:100', 'tanggal_lahir' => 'nullable|date', 'kelas_id' => 'nullable|exists:kelas,id', 'wali_id' => 'nullable|exists:wali_murids,id', 'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:2048', ]); // simpan foto baru kalau diupload if ($request->hasFile('foto')) { $fotoPath = $request->file('foto')->store('foto_siswa', 'public'); $siswa->foto = $fotoPath; } // update data siswa $siswa->update([ 'nama' => $request->nama, 'tempat_lahir' => $request->tempat_lahir, 'tanggal_lahir' => $request->tanggal_lahir, 'kelas_id' => $request->kelas_id, 'wali_id' => $request->wali_id, ]); return redirect()->route('siswa.index')->with('success', 'Data siswa berhasil diperbarui.'); } public function destroy(Siswa $siswa) { if ($siswa->foto && Storage::disk('public')->exists($siswa->foto)) { Storage::disk('public')->delete($siswa->foto); } $siswa->delete(); return redirect()->route('siswa.index')->with('success','Siswa berhasil dihapus'); } }