has('search')) { $search = $request->search; $query->where('nama', 'like', "%$search%") ->orWhere('nip', 'like', "%$search%"); } // SHOW PER PAGE $perPage = $request->get('perPage', 10); $gurus = $query->paginate($perPage)->appends($request->all()); return view('admin.guru.index', compact('gurus')); } /** * Show the form for creating a new resource. */ public function create() { return view('admin.guru.create'); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $validated = $request->validate([ 'nip' => 'required|string|max:30|unique:gurus,nip', 'nama' => 'required|string|max:100', 'password' => 'required|string|min:6', ], [ 'nip.required' => 'NIP wajib diisi', 'nip.unique' => 'NIP sudah terdaftar', 'nama.required' => 'Nama wajib diisi', 'password.required' => 'Password wajib diisi', 'password.min' => 'Password minimal 6 karakter', ]); Guru::create([ 'nip' => $validated['nip'], 'nama' => $validated['nama'], 'password' => Hash::make($validated['password']), ]); return redirect()->route('admin.guru.index') ->with('success', 'Data guru berhasil ditambahkan!'); } /** * Display the specified resource. */ public function show(string $nip) { $guru = Guru::findOrFail($nip); return view('admin.guru.show', compact('guru')); } /** * Show the form for editing the specified resource. */ public function edit(string $nip) { $guru = Guru::findOrFail($nip); return view('admin.guru.edit', compact('guru')); } /** * Update the specified resource in storage. */ public function update(Request $request, string $nip) { $guru = Guru::findOrFail($nip); $validated = $request->validate([ 'nama' => 'required|string|max:100', 'password' => 'nullable|string|min:6', ], [ 'nama.required' => 'Nama wajib diisi', 'password.min' => 'Password minimal 6 karakter', ]); $guru->nama = $validated['nama']; // Update password hanya jika diisi if ($request->filled('password')) { $guru->password = Hash::make($validated['password']); } $guru->save(); return redirect()->route('admin.guru.index') ->with('success', 'Data guru berhasil diupdate!'); } /** * Remove the specified resource from storage. */ public function destroy(string $nip) { $guru = Guru::findOrFail($nip); $guru->delete(); return redirect()->route('admin.guru.index') ->with('success', 'Data guru berhasil dihapus!'); } }