query($key, $request->query('size', $default)); return max(1, min($max, $value)); } /** * 解析当前页码(强制至少为 1)。 */ protected function page(Request $request, string $key = 'page', int $default = 1): int { return max(1, (int) $request->query($key, $default)); } /** * 解析分页元数据数组。 * * @return array{page: int, per_page: int} */ protected function paginationMeta(Request $request, int $defaultPerPage = 20, int $maxPerPage = 50): array { return [ 'page' => $this->page($request), 'per_page' => $this->perPage($request, 'per_page', $defaultPerPage, $maxPerPage), ]; } }