From 38a6f81b393cfdbfd7da18d5e1cf92805903e9f0 Mon Sep 17 00:00:00 2001 From: zj Date: Tue, 18 Aug 2026 09:15:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=86=E9=A1=B5=E6=89=93?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Library/Util.php | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/Library/Util.php b/src/Library/Util.php index c7ac92d..775cdc8 100644 --- a/src/Library/Util.php +++ b/src/Library/Util.php @@ -12,6 +12,8 @@ use Hyperf\Context\ApplicationContext; use Hyperf\Collection\Arr; use Hyperf\Carbon\Carbon; use Dhd\Micro\Core\Library\Logger; +use Hyperf\Contract\LengthAwarePaginatorInterface; +use Hyperf\Paginator\AbstractPaginator; final class Util { @@ -418,7 +420,8 @@ final class Util */ public static function getPageFromParams(array $params): int { - return (int)Arr::get($params, 'page', 1) ?: 1; + $page = (int)Arr::get($params, 'page', 1) ?: 1; + return max($page, 1); } /** @@ -426,9 +429,9 @@ final class Util * @param array $params * @return int */ - public static function getPageSizeFromParams(array $params): int + public static function getPageSizeFromParams(array $params, int $maxSize = 100): int { - return (int)Arr::get( + $pageSize = (int)Arr::get( $params, 'size', Arr::get( @@ -437,5 +440,25 @@ final class Util Arr::get($params, 'pageSize', 15) ) ) ?: 15; + + return min(max($pageSize, 1), $maxSize); + } + + /** + * 分页打包 + * @param LengthAwarePaginatorInterface $paginator 分页对象 + * @return array + */ + public static function handlePage(LengthAwarePaginatorInterface $paginator): array + { + if ($paginator instanceof AbstractPaginator) { + $items = $paginator->getCollection(); + } else { + $items = Collection::make($paginator->items()); + } + return [ + 'list' => $items->toArray(), + 'total' => $paginator->total(), + ]; } }