parent
34788caf83
commit
ae2368c8f8
|
|
@ -13,63 +13,74 @@ class SiswaController extends Controller
|
|||
{
|
||||
public function index()
|
||||
{
|
||||
$siswa = Siswa::with(['kelas','wali'])->paginate(10);
|
||||
return view('admin.siswa.index', compact('siswa'));
|
||||
$siswas = Siswa::with(['waliMurid', 'kelas'])->orderBy('created_at', 'desc')->get();
|
||||
return view('admin.siswa.index', compact('siswas'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
$kelas = Kelas::all();
|
||||
$wali = WaliMurid::all();
|
||||
return view('admin.siswa.create', compact('kelas','wali'));
|
||||
$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:100',
|
||||
'nis' => 'required|string|max:50|unique:siswa,nis',
|
||||
'tanggal_lahir' => 'required|date',
|
||||
'kelas_id' => 'required|exists:kelas,id',
|
||||
'wali_id' => 'required|exists:wali_murid,id',
|
||||
'foto' => 'nullable|image|max:2048'
|
||||
'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('siswa','public');
|
||||
$validated['foto'] = $request->file('foto')->store('fotosiswa', 'public');
|
||||
}
|
||||
|
||||
|
||||
Siswa::create($validated);
|
||||
return redirect()->route('siswa.index')->with('success','Siswa berhasil ditambahkan');
|
||||
|
||||
return redirect()->route('siswa.index')->with('success', 'Data peserta didik berhasil ditambahkan.');
|
||||
}
|
||||
|
||||
public function edit(Siswa $siswa)
|
||||
{
|
||||
$kelas = Kelas::all();
|
||||
$wali = WaliMurid::all();
|
||||
return view('admin.siswa.edit', compact('siswa','kelas','wali'));
|
||||
$wali_murids = WaliMurid::all();
|
||||
|
||||
return view('admin.siswa.edit', compact('siswa', 'kelas', 'wali_murids'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Siswa $siswa)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'nama' => 'required|string|max:100',
|
||||
'nis' => 'required|string|max:50|unique:siswa,nis,'.$siswa->id,
|
||||
'tanggal_lahir' => 'required|date',
|
||||
'kelas_id' => 'required|exists:kelas,id',
|
||||
'wali_id' => 'required|exists:wali_murid,id',
|
||||
'foto' => 'nullable|image|max:2048'
|
||||
$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')) {
|
||||
if ($siswa->foto && Storage::disk('public')->exists($siswa->foto)) {
|
||||
Storage::disk('public')->delete($siswa->foto);
|
||||
}
|
||||
$validated['foto'] = $request->file('foto')->store('siswa','public');
|
||||
$fotoPath = $request->file('foto')->store('foto_siswa', 'public');
|
||||
$siswa->foto = $fotoPath;
|
||||
}
|
||||
|
||||
$siswa->update($validated);
|
||||
return redirect()->route('siswa.index')->with('success','Siswa berhasil diupdate');
|
||||
|
||||
// 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)
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@ class Kelas extends Model
|
|||
protected $table = 'kelas';
|
||||
protected $fillable = ['nama_kelas','umur_group'];
|
||||
|
||||
public function siswa()
|
||||
public function siswas()
|
||||
{
|
||||
return $this->hasMany(Siswa::class);
|
||||
return $this->hasMany(Siswa::class, 'kelas_id');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -6,12 +6,12 @@
|
|||
|
||||
class Siswa extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = [
|
||||
'nama',
|
||||
'nis',
|
||||
'tempat_lahir',
|
||||
'tanggal_lahir',
|
||||
'alamat',
|
||||
'keterangan',
|
||||
'kelas_id',
|
||||
'wali_id',
|
||||
'foto',
|
||||
|
|
@ -22,7 +22,7 @@ public function kelas()
|
|||
return $this->belongsTo(Kelas::class);
|
||||
}
|
||||
|
||||
public function wali()
|
||||
public function waliMurid()
|
||||
{
|
||||
return $this->belongsTo(WaliMurid::class, 'wali_id');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,10 @@ class WaliMurid extends Model
|
|||
'no_hp',
|
||||
'alamat',
|
||||
];
|
||||
}
|
||||
|
||||
// Tambahin relasi ke siswa
|
||||
public function siswas()
|
||||
{
|
||||
return $this->hasMany(Siswa::class, 'wali_id');
|
||||
}
|
||||
}
|
||||
|
|
@ -5,30 +5,52 @@
|
|||
<h1 class="text-xl font-semibold text-gray-700 mb-4">✏️ Edit Guru</h1>
|
||||
|
||||
<form action="{{ route('guru.update', $guru->id) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700">Nama</label>
|
||||
<input type="text" name="nama_guru" value="{{ $guru->nama_guru }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700">Bidang</label>
|
||||
<input type="text" name="bidang" value="{{ $guru->bidang }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300">
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700">No HP</label>
|
||||
<input type="text" name="no_hp" value="{{ $guru->no_hp }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300">
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700">Email</label>
|
||||
<input type="email" name="email" value="{{ $guru->email }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300">
|
||||
</div>
|
||||
|
||||
<button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">Perbarui</button>
|
||||
</form>
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<!-- Nama -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Nama</label>
|
||||
<input type="text" name="nama"
|
||||
value="{{ old('nama', $guru->name) }}"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<!-- Bidang -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Bidang</label>
|
||||
<input type="text" name="bidang"
|
||||
value="{{ old('bidang', $guru->bidang) }}"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<!-- No HP -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">No HP</label>
|
||||
<input type="text" name="no_hp"
|
||||
value="{{ old('no_hp', $guru->no_hp) }}"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<!-- Email -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Email</label>
|
||||
<input type="email" name="email"
|
||||
value="{{ old('email', $guru->email) }}"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<!-- Tombol -->
|
||||
<div class="flex justify-end mt-6 gap-3">
|
||||
<a href="{{ route('guru.index') }}"
|
||||
class="bg-gray-500 text-white px-5 py-2 rounded hover:bg-gray-600 transition">
|
||||
Batal
|
||||
</a>
|
||||
<button type="submit"
|
||||
class="bg-green-600 text-white px-5 py-2 rounded hover:bg-green-700 transition">
|
||||
Perbarui
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -1,54 +1,68 @@
|
|||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="max-w-xl mx-auto bg-white shadow-md rounded-lg p-6">
|
||||
<h1 class="text-xl font-semibold mb-4 text-gray-700">➕ Tambah Peserta Didik</h1>
|
||||
<div class="bg-white shadow-md rounded-lg p-6 max-w-2xl mx-auto">
|
||||
<h1 class="text-xl font-semibold text-gray-700 mb-4">➕ Tambah Peserta Didik</h1>
|
||||
|
||||
<form action="{{ route('siswa.store') }}" method="POST" enctype="multipart/form-data" class="space-y-4">
|
||||
<form action="{{ route('siswa.store') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Nama</label>
|
||||
<input type="text" name="nama" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-600 font-medium mb-2">Nama Anak</label>
|
||||
<input type="text" name="nama" class="w-full border border-gray-300 rounded p-2" required>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">NIS</label>
|
||||
<input type="text" name="nis" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label class="block text-gray-600 font-medium mb-2">Tempat Lahir</label>
|
||||
<input type="text" name="tempat_lahir" class="w-full border border-gray-300 rounded p-2">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-gray-600 font-medium mb-2">Tanggal Lahir</label>
|
||||
<input type="date" name="tanggal_lahir" class="w-full border border-gray-300 rounded p-2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Tanggal Lahir</label>
|
||||
<input type="date" name="tanggal_lahir" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
<div class="mt-4">
|
||||
<label class="block text-gray-600 font-medium mb-2">Alamat</label>
|
||||
<textarea name="alamat" class="w-full border border-gray-300 rounded p-2" rows="3"></textarea>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Kelas</label>
|
||||
<select name="kelas_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
<option value="">-- Pilih Kelas --</option>
|
||||
@foreach($kelas as $k)
|
||||
<option value="{{ $k->id }}">{{ $k->nama }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="grid grid-cols-2 gap-4 mt-4">
|
||||
<div>
|
||||
<label class="block text-gray-600 font-medium mb-2">Kelas</label>
|
||||
<select name="kelas_id" class="w-full border border-gray-300 rounded p-2">
|
||||
<option value="">-- Pilih Kelas --</option>
|
||||
@foreach ($kelas as $k)
|
||||
<option value="{{ $k->id }}">{{ $k->nama_kelas }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-gray-600 font-medium mb-2">Wali Murid</label>
|
||||
<select name="wali_id" class="w-full border border-gray-300 rounded p-2">
|
||||
<option value="">-- Pilih Wali Murid --</option>
|
||||
@foreach ($wali_murids as $wali)
|
||||
<option value="{{ $wali->id }}">{{ $wali->nama_wali }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Wali Murid</label>
|
||||
<select name="wali_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
<option value="">-- Pilih Wali Murid --</option>
|
||||
@foreach($wali as $w)
|
||||
<option value="{{ $w->id }}">{{ $w->nama }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="mt-4">
|
||||
<label class="block text-gray-600 font-medium mb-2">Keterangan</label>
|
||||
<input type="text" name="keterangan" class="w-full border border-gray-300 rounded p-2">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Foto</label>
|
||||
<input type="file" name="foto" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400">
|
||||
<div class="mt-4">
|
||||
<label class="block text-gray-600 font-medium mb-2">Foto</label>
|
||||
<input type="file" name="foto" class="w-full border border-gray-300 rounded p-2">
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end gap-2">
|
||||
<a href="{{ route('siswa.index') }}" class="bg-gray-300 px-4 py-2 rounded hover:bg-gray-400">Batal</a>
|
||||
<div class="flex justify-end mt-6">
|
||||
<a href="{{ route('siswa.index') }}" class="bg-gray-400 text-white px-4 py-2 rounded hover:bg-gray-500 mr-2">Batal</a>
|
||||
<button type="submit" class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700">Simpan</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -1,68 +1,73 @@
|
|||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="max-w-xl mx-auto bg-white shadow-md rounded-lg p-6">
|
||||
<h1 class="text-xl font-semibold mb-4 text-gray-700">✏️ Edit Peserta Didik</h1>
|
||||
<div class="bg-white shadow-md rounded-lg p-6 max-w-2xl mx-auto">
|
||||
<h1 class="text-xl font-semibold text-gray-700 mb-4">✏️ Edit Data Peserta Didik</h1>
|
||||
|
||||
<form action="{{ route('siswa.update', $siswa->id) }}" method="POST" enctype="multipart/form-data" class="space-y-4">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Nama</label>
|
||||
<input type="text" name="nama" value="{{ old('nama', $siswa->nama) }}"
|
||||
class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">NIS</label>
|
||||
<input type="text" name="nis" value="{{ old('nis', $siswa->nis) }}"
|
||||
class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Tanggal Lahir</label>
|
||||
<input type="date" name="tanggal_lahir" value="{{ old('tanggal_lahir', $siswa->tanggal_lahir) }}"
|
||||
class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Kelas</label>
|
||||
<select name="kelas_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
@foreach($kelas as $k)
|
||||
<option value="{{ $k->id }}" {{ $siswa->kelas_id == $k->id ? 'selected' : '' }}>
|
||||
{{ $k->nama }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Wali Murid</label>
|
||||
<select name="wali_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
|
||||
@foreach($wali as $w)
|
||||
<option value="{{ $w->id }}" {{ $siswa->wali_id == $w->id ? 'selected' : '' }}>
|
||||
{{ $w->nama }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600">Foto</label>
|
||||
@if($siswa->foto)
|
||||
<div class="mb-2">
|
||||
<img src="{{ asset('storage/'.$siswa->foto) }}" class="w-24 h-24 rounded object-cover">
|
||||
<form action="{{ route('siswa.update', $siswa->id) }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Nama Anak</label>
|
||||
<input type="text" name="nama" value="{{ old('nama', $siswa->nama) }}"
|
||||
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Tempat Lahir</label>
|
||||
<input type="text" name="tempat_lahir" value="{{ old('tempat_lahir', $siswa->tempat_lahir) }}"
|
||||
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Tanggal Lahir</label>
|
||||
<input type="date" name="tanggal_lahir" value="{{ old('tanggal_lahir', $siswa->tanggal_lahir) }}"
|
||||
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Alamat</label>
|
||||
<textarea name="alamat" rows="2"
|
||||
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">{{ old('alamat', $siswa->alamat) }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-2 gap-4 mb-4">
|
||||
<div>
|
||||
<label class="block text-gray-700 font-medium">Kelas</label>
|
||||
<select name="kelas_id" class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
|
||||
@foreach($kelas as $k)
|
||||
<option value="{{ $k->id }}" {{ $k->id == $siswa->kelas_id ? 'selected' : '' }}>
|
||||
{{ $k->nama_kelas }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@endif
|
||||
<input type="file" name="foto" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400">
|
||||
<p class="text-xs text-gray-500 mt-1">Kosongkan jika tidak ingin mengubah foto</p>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end gap-2">
|
||||
<a href="{{ route('siswa.index') }}" class="bg-gray-300 px-4 py-2 rounded hover:bg-gray-400">Batal</a>
|
||||
<button type="submit" class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700">Update</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div>
|
||||
<label class="block text-gray-700 font-medium">Wali Murid</label>
|
||||
<select name="wali_id" class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
|
||||
@foreach($wali_murids as $wali)
|
||||
<option value="{{ $wali->id }}" {{ $wali->id == $siswa->wali_id ? 'selected' : '' }}>
|
||||
{{ $wali->nama_wali }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Foto</label>
|
||||
<input type="file" name="foto" class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
|
||||
@if ($siswa->foto)
|
||||
<img src="{{ asset('storage/' . $siswa->foto) }}" alt="Foto {{ $siswa->nama }}" class="mt-2 w-20 h-20 object-cover rounded">
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end space-x-2">
|
||||
<a href="{{ route('siswa.index') }}" class="bg-gray-500 text-white px-4 py-2 rounded hover:bg-gray-600">Batal</a>
|
||||
<button type="submit" class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700">Perbarui</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -14,49 +14,46 @@ class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700 transition">
|
|||
<thead>
|
||||
<tr class="bg-green-600 text-white text-left">
|
||||
<th class="p-2">#</th>
|
||||
<th class="p-2">Nama</th>
|
||||
<th class="p-2">NIS</th>
|
||||
<th class="p-2">Nama Anak</th>
|
||||
<th class="p-2">Tempat, Tgl Lahir</th>
|
||||
<th class="p-2">Alamat</th>
|
||||
<th class="p-2">Kelas</th>
|
||||
<th class="p-2">Wali Murid</th>
|
||||
<th class="p-2">Keterangan</th>
|
||||
<th class="p-2">Foto</th>
|
||||
<th class="p-2">Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($siswa as $i => $item)
|
||||
<tr class="border-b hover:bg-gray-50">
|
||||
<td class="p-2">{{ $i+1 }}</td>
|
||||
<td class="p-2">{{ $item->nama }}</td>
|
||||
<td class="p-2">{{ $item->nis }}</td>
|
||||
<td class="p-2">{{ $item->kelas->nama ?? '-' }}</td>
|
||||
<td class="p-2">{{ $item->wali->nama ?? '-' }}</td>
|
||||
<td class="p-2">
|
||||
@if($item->foto)
|
||||
<img src="{{ asset('storage/'.$item->foto) }}"
|
||||
class="w-12 h-12 rounded object-cover">
|
||||
@else
|
||||
<span class="text-gray-400">-</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="p-2 flex gap-2">
|
||||
<a href="{{ route('siswa.edit', $item->id) }}"
|
||||
class="bg-blue-500 text-white px-3 py-1 rounded hover:bg-blue-600">
|
||||
Edit
|
||||
</a>
|
||||
<form action="{{ route('siswa.destroy', $item->id) }}" method="POST" onsubmit="return confirm('Yakin ingin menghapus?')">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit"
|
||||
class="bg-red-500 text-white px-3 py-1 rounded hover:bg-red-600">
|
||||
Hapus
|
||||
</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@forelse ($siswas as $siswa)
|
||||
<tr>
|
||||
<td>{{ $loop->iteration }}</td>
|
||||
<td>{{ $siswa->nama }}</td>
|
||||
<td>{{ $siswa->tempat_lahir }}, {{ $siswa->tanggal_lahir }}</td>
|
||||
<td>{{ $siswa->alamat }}</td>
|
||||
<td>{{ $siswa->kelas->nama_kelas ?? '-' }}</td>
|
||||
<td>{{ $siswa->waliMurid->nama_wali ?? '-' }}</td>
|
||||
<td>{{ $siswa->keterangan ?? '-' }}</td>
|
||||
<td>
|
||||
@if ($siswa->foto)
|
||||
<img src="{{ asset('storage/' . $siswa->foto) }}" alt="{{ $siswa->nama }}" width="50">
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ route('siswa.edit', $siswa->id) }}" class="text-blue-600 hover:underline">Edit</a>
|
||||
<form action="{{ route('siswa.destroy', $siswa->id) }}" method="POST" style="display:inline;">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit" class="text-red-600 hover:underline">Hapus</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="7" class="text-center text-gray-500 p-4">Belum ada data siswa</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" class="text-center text-gray-500 p-4">Belum ada data siswa</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -1,36 +1,54 @@
|
|||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-white shadow-md rounded-lg p-6">
|
||||
<h2 class="text-xl font-semibold mb-4">Edit Data Wali Murid</h2>
|
||||
<div class="bg-white shadow-md rounded-lg p-6 max-w-xl mx-auto">
|
||||
<h1 class="text-xl font-semibold text-gray-700 mb-4">✏️ Edit Data Wali Murid</h1>
|
||||
|
||||
<form action="{{ route('wali-murid.update', $wali_murid->id) }}" method="POST" class="space-y-4">
|
||||
<form action="{{ route('wali-murid.update', $wali_murid->id) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div>
|
||||
<!-- Nama Wali -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Nama Wali</label>
|
||||
<input type="text" name="nama_wali" class="w-full border rounded p-2" value="{{ $wali_murid->nama_wali }}" required>
|
||||
<input type="text" name="nama_wali"
|
||||
value="{{ old('nama_wali', $wali_murid->nama_wali) }}"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<!-- Email -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Email</label>
|
||||
<input type="email" name="email" class="w-full border rounded p-2" value="{{ $wali_murid->email }}">
|
||||
<input type="email" name="email"
|
||||
value="{{ old('email', $wali_murid->email) }}"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<!-- No HP -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">No HP</label>
|
||||
<input type="text" name="no_hp" class="w-full border rounded p-2" value="{{ $wali_murid->no_hp }}">
|
||||
<input type="text" name="no_hp"
|
||||
value="{{ old('no_hp', $wali_murid->no_hp) }}"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<!-- Alamat -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-medium">Alamat</label>
|
||||
<textarea name="alamat" rows="3" class="w-full border rounded p-2">{{ $wali_murid->alamat }}</textarea>
|
||||
<textarea name="alamat" rows="3"
|
||||
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">{{ old('alamat', $wali_murid->alamat) }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end gap-2">
|
||||
<a href="{{ route('wali-murid.index') }}" class="px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600">Batal</a>
|
||||
<button type="submit" class="px-4 py-2 bg-green-600 text-white rounded hover:bg-green-700">Update</button>
|
||||
<!-- Tombol -->
|
||||
<div class="flex justify-end mt-6 gap-3">
|
||||
<a href="{{ route('wali-murid.index') }}"
|
||||
class="bg-gray-500 text-white px-5 py-2 rounded hover:bg-gray-600 transition">
|
||||
Batal
|
||||
</a>
|
||||
<button type="submit"
|
||||
class="bg-green-600 text-white px-5 py-2 rounded hover:bg-green-700 transition">
|
||||
Perbarui
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue