MIF_E31221225/app/Http/Controllers/Siswa/ProfileSiswaController.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.');
}
}