when($request->search, fn ($q, $v) => $q->where('nama', 'like', "%$v%")->orWhere('kod', 'like', "%$v%")) ->when($request->jabatan_id, fn ($q, $v) => $q->where('jabatan_id', $v)) ->latest()->paginate(10)->withQueryString(); $jabatan = Jabatan::orderBy('nama')->get(); return view('admin.vot.index', compact('vot', 'jabatan')); } public function create() { return view('admin.vot.form', ['vot' => new Vot(), 'jabatan' => Jabatan::orderBy('nama')->get()]); } public function store(Request $request) { Vot::create($this->validated($request)); return redirect()->route('vot.index')->with('success', 'VOT berjaya ditambah.'); } public function edit(Vot $vot) { return view('admin.vot.form', ['vot' => $vot, 'jabatan' => Jabatan::orderBy('nama')->get()]); } public function update(Request $request, Vot $vot) { $vot->update($this->validated($request, $vot->id)); return redirect()->route('vot.index')->with('success', 'VOT berjaya dikemaskini.'); } public function destroy(Vot $vot) { $vot->delete(); return back()->with('success', 'VOT berjaya dipadam.'); } private function validated(Request $request, ?int $id = null): array { return $request->validate([ 'kod' => ['required', 'max:50', 'unique:vot,kod,'.$id], 'nama' => ['required', 'max:255'], 'jabatan_id' => ['nullable', 'exists:jabatan,id'], 'penerangan' => ['nullable'], 'status' => ['nullable', 'boolean'], ]) + ['status' => $request->boolean('status')]; } }