ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 分页 在开发Web应用程序时,您经常会遇到在页面上打印出有限数量的记录的要求。 然而,分页背后的数学可能是棘手的,这就是为什么你应该使用Nette \ Utils \ Paginator。 我们实例化分页器并设置对象的属性,例如:每页的记录数,当前页的数量和记录的总数(如果已知)。 ~~~ $paginator = new Nette\Utils\Paginator; $paginator->setItemCount(356); // the total number of records (e.g., a number of products) $paginator->setItemsPerPage(30); // the number of records on page $paginator->setPage(1); // the number of the current page (numbered from one) ~~~ 对象可以传递给模板,之后我们可以提出明确的问题 ~~~ if ($paginator->first) ... // is this the first page? if ($paginator->last) ... // is this the last page? echo $paginator->page; // current page number ~~~ 我们在SQL查询的配方中使用分页器。 方法getLength()和getOffset()返回在LIMIT和OFFSET子句中使用的值。 ~~~ $result = $database->table('products') ->limit($paginator->getLength(), $paginator->getOffset()); ~~~ 如果您需要以相反顺序的页面(即,页面号1对应于最高偏移量),则可以将getOffset()方法替换为getCountdownOffset()。