param('offset', 0); $limit = (int)$request->param('limit', 30); $limit = min($limit, self::$MAX_LIMIT); return $model->order(!is_null($order) ? $order : (string)$model->getPk(), 'desc') ->limit($offset, $limit) ->select(); } /** * @param Request $request * @param BaseModel $model * @param null $order * @return Paginator * @throws DbException */ public static function getPaginate(Request $request, mixed $model, $order = null) { $page = (int)$request->param('page', 1); $page = max(1, $page); $limit = (int)$request->param('limit', 30); $limit = min($limit, self::$MAX_LIMIT); // 前端自定义排序条件 $sort = $request->param('sort'); $sort_order = $request->param('order'); if (!empty($sort) && in_array($sort_order, ['desc', 'asc'])) { $order = [Str::snake($sort) => $sort_order]; } return $model->order(!is_null($order) ? $order : (string)$model->getPk(), 'desc') ->limit($page, $limit) ->paginate([ 'list_rows' => $limit, 'page' => $page, ]); } }