diff --git a/library/think/db/Builder.php b/library/think/db/Builder.php index a96c2b1d..ccdb301c 100644 --- a/library/think/db/Builder.php +++ b/library/think/db/Builder.php @@ -494,14 +494,6 @@ abstract class Builder */ public function select($options = []) { - if (isset($options['page'])) { - // 根据页数计算limit - list($page, $listRows) = $options['page']; - $page = $page > 0 ? $page : 1; - $listRows = $listRows > 0 ? $listRows : (is_numeric($options['limit']) ? $options['limit'] : 20); - $offset = $listRows * ($page - 1); - $options['limit'] = $offset . ',' . $listRows; - } $sql = str_replace( ['%TABLE%', '%DISTINCT%', '%FIELD%', '%JOIN%', '%WHERE%', '%GROUP%', '%HAVING%', '%ORDER%', '%LIMIT%', '%UNION%', '%LOCK%', '%COMMENT%', '%FORCE%'], [ diff --git a/library/think/db/Query.php b/library/think/db/Query.php index 902178c6..e1b725b5 100644 --- a/library/think/db/Query.php +++ b/library/think/db/Query.php @@ -1455,6 +1455,15 @@ class Query } } + if (isset($options['page'])) { + // 根据页数计算limit + list($page, $listRows) = $options['page']; + $page = $page > 0 ? $page : 1; + $listRows = $listRows > 0 ? $listRows : (is_numeric($options['limit']) ? $options['limit'] : 20); + $offset = $listRows * ($page - 1); + $options['limit'] = $offset . ',' . $listRows; + } + $this->options = []; return $options; }