query('per_page', 10); $search = $request->query('search', ''); $program = Program::where('nama', 'like', "%$search%") ->paginate($perPage); return view('core.program.index', compact('title', 'program')); } public function create() { $provinsi = Provinsi::orderBy('nama', 'asc')->get(); $komoditas = Komoditas::orderBy('nama', 'asc')->get(); return view('core.program.add', compact('provinsi', 'komoditas')); } public function getProgram() { $program = Program::select(['id', 'nama', 'sub_domain'])->get(); return response()->json(['data' => $program]); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'nama' => ['required'], 'sub_domain' => ['required', Rule::unique(Program::class, 'sub_domain')], 'tahun' => ['required', 'integer'], 'instansi' => ['nullable', 'string'], ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => $validator->errors()->first() ], 422); } Program::create([...$validator->validated(), 'created_by' => auth()->id(), 'updated_by' => auth()->id(), ]); return redirect()->route('program.index')->with('success', 'Data program berhasil disimpan!'); } public function show($id) { $program = Program::find($id); if (!$program) { return redirect()->route('program.index')->with('error', 'Data program tidak ditemukan.'); } $komoditas = Komoditas::all(); $provinsi = Provinsi::all(); return view('core.program.view', compact('program', 'komoditas', 'provinsi')); } public function edit($id) { $program = Program::find($id); if (!$program) { return redirect()->route('program.index')->with('error', 'Data program tidak ditemukan.'); } return view('core.program.edit', compact('program')); } public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'nama' => ['required'], 'sub_domain' => ['required', Rule::unique(Program::class, 'sub_domain')->ignore($id)], ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $program = Program::find($id); if (!$program) { return redirect()->route('program.index')->with('error', 'Data program tidak ditemukan!'); } $program->update([ 'nama' => $request->nama, 'sub_domain' => $request->sub_domain, 'updated_by' => auth()->id(), ]); return redirect()->route('program.index')->with('success', 'Data program berhasil diperbarui!'); } public function destroy($id) { $program = Program::find($id); if (!$program) { return response()->json([ 'status' => 'error', 'message' => 'Data tidak ditemukan.' ], 404); } $program->deleted_by = auth()->user()->id; $program->save(); $program->delete(); return response()->json([ 'status' => 'success', 'message' => 'Data program berhasil dihapus.' ]); } }