# 分頁
在開發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()。
- Nette簡介
- 快速開始
- 入門
- 主頁
- 顯示文章詳細頁
- 文章評論
- 創建和編輯帖子
- 權限驗證
- 程序員指南
- MVC應用程序和控制器
- URL路由
- Tracy - PHP調試器
- 調試器擴展
- 增強PHP語言
- HTTP請求和響應
- 數據庫
- 數據庫:ActiveRow
- 數據庫和表
- Sessions
- 用戶授權和權限
- 配置
- 依賴注入
- 獲取依賴關系
- DI容器擴展
- 組件
- 字符串處理
- 數組處理
- HTML元素
- 使用URL
- 表單
- 驗證器
- 模板
- AJAX & Snippets
- 發送電子郵件
- 圖像操作
- 緩存
- 本土化
- Nette Tester - 單元測試
- 與Travis CI的持續集成
- 分頁
- 自動加載
- 文件搜索:Finder
- 原子操作