68 lines
1.8 KiB
PHP
68 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Siswa;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Redirect;
|
|
use Illuminate\View\View;
|
|
|
|
class ProfileSiswaController extends Controller
|
|
{
|
|
// Tampilkan profile siswa
|
|
public function index(): View
|
|
{
|
|
$user = Auth::user();
|
|
$siswa = $user->siswa; // pastikan relasi user-siswa sudah dibuat di model User
|
|
|
|
return view('siswa.profile-show', compact('user', 'siswa'));
|
|
}
|
|
|
|
// Form edit profile siswa
|
|
public function edit(): View
|
|
{
|
|
$user = Auth::user();
|
|
$siswa = $user->siswa;
|
|
|
|
return view('siswa.profile-edit', compact('user', 'siswa'));
|
|
}
|
|
|
|
// Update data profile siswa
|
|
public function update(Request $request)
|
|
{
|
|
$user = Auth::user();
|
|
$siswa = $user->siswa;
|
|
|
|
$request->validate([
|
|
'nama' => 'required|string|max:255',
|
|
'email' => 'required|email|unique:users,email,' . $user->id,
|
|
'nisn' => 'nullable|string|max:255',
|
|
'kelas_id' => 'nullable|integer|exists:kelas,id',
|
|
'jenis_kelamin' => 'required|in:L,P',
|
|
'alamat' => 'nullable|string',
|
|
'password' => 'nullable|string|min:6', // validasi password
|
|
]);
|
|
|
|
// Update user
|
|
$user->email = $request->email;
|
|
$user->name = $request->nama;
|
|
|
|
if ($request->filled('password')) {
|
|
$user->password = Hash::make($request->password);
|
|
}
|
|
|
|
$user->save();
|
|
|
|
// Update siswa
|
|
$siswa->nama = $request->nama;
|
|
$siswa->nisn = $request->nisn;
|
|
$siswa->kelas_id = $request->kelas_id;
|
|
$siswa->jenis_kelamin = $request->jenis_kelamin;
|
|
$siswa->alamat = $request->alamat;
|
|
$siswa->save();
|
|
|
|
return Redirect::route('siswa.profile.show')->with('status', 'Profil berhasil diperbarui.');
|
|
}
|
|
}
|