input('search')); $page = (int) $request->input('page', 1); $perPage = (int) $request->input('per_page', 10); if ($page < 1) $page = 1; if ($perPage < 1) $perPage = 10; if ($perPage > 50) $perPage = 50; $validator = Validator::make( ['search' => $search, 'page' => $page, 'per_page' => $perPage], ['search' => 'required|min:2', 'page' => 'integer|min:1', 'per_page' => 'integer|min:1|max:50'] ); if ($validator->fails()) { return response()->json(['error' => 0, 'data' => [], 'meta' => [ 'page' => $page, 'per_page' => $perPage, 'total' => 0, 'last_page' => 1, ]]); } $paginator = Karyawan::where('statusenabled', true)->where('kedudukanfk', 1) ->when($search, function($q) use ($search) { $q->where(function($q2) use ($search){ $q2->where('namalengkap', 'ILIKE', "%$search%") ->orWhere('nip_pns', 'ILIKE', "%$search%"); }); }) ->select('id', 'namalengkap') ->orderBy('namalengkap') ->paginate($perPage, ['*'], 'page', $page); return response()->json([ 'error' => 0, 'data' => $paginator->items(), 'meta' => [ 'page' => $paginator->currentPage(), 'per_page' => $paginator->perPage(), 'total' => $paginator->total(), 'last_page' => $paginator->lastPage(), ], ]); } }