query('role', 'siswa'); // Ambil 'role' dari URL, default ke 'siswa' // Kirim $role ke view return view('auth.register', ['role' => $role]); } /** * Menangani permintaan registrasi yang masuk. */ public function store(Request $request): RedirectResponse { // Bagian Validasi Dinamis $role = $request->input('role'); $rules = [ 'name' => ['required', 'string', 'max:255'], 'password' => ['required', 'confirmed', Rules\Password::defaults()], 'role' => ['required', 'in:siswa,guru'], // Sesuaikan dengan role yang diizinkan ]; // Tambahkan validasi NISN atau NIP berdasarkan role if ($role === 'siswa') { $rules['nisn'] = ['required', 'string', 'max:255']; // Tambahkan 'unique:users' jika perlu } else { // Asumsi 'guru' $rules['nip'] = ['required', 'string', 'max:255']; // Tambahkan 'unique:users' jika perlu } $request->validate($rules); // Bagian Pembuatan User $userArray = [ 'id' => rand(100, 999), // ID unik sementara 'nama_lengkap' => $request->name, 'name' => $request->name, 'password' => Hash::make($request->password), // Gunakan Hash jika login Anda sudah pakai Hash // 'password' => $request->password, // Gunakan ini jika login (LoginRequest) masih cek teks biasa 'role' => $request->role, ]; // Tambahkan field dinamis (NISN/NIP) dan buat email unik palsu if ($role === 'siswa') { $userArray['nisn'] = $request->nisn; $userArray['email'] = $request->nisn . '@smkn1perpus.sch.id'; // Email unik sementara } else { $userArray['nip'] = $request->nip; $userArray['email'] = $request->nip . '@smkn1perpus.sch.id'; // Email unik sementara } $user = new User(); $user->forceFill($userArray); // $user->save(); // Aktifkan ini jika menggunakan database event(new Registered($user)); Auth::login($user); // Bagian Redirect if ($user->role === 'penjaga perpus') { return redirect()->route('admin.dashboard'); } else { return redirect()->route('dashboard'); } } }