我在 Kohana 3.2 中找到了很多关于分页的信息,但大部分信息分散在论坛评论和博客文章中,没有一个完整的来源可供引用。
(注意:我打算自己回答这个问题)
最佳答案
这对我有用:
- 从https://github.com/kloopko/kohana-pagination下载分页模块(分页已从 Kohana 3.2 中删除,因此这是一个经过改编的模块)。
- 在 modules/pagination 中安装模块。
在 bootstrap.php 中添加模块:
Kohana::modules(array( // ... other modules ... 'pagination' => MODPATH.'pagination' ));
将配置文件从 modules/pagination/config/pagination.php 复制到 application/config/pagination.php。
将以下操作添加到您的 Controller :
public function action_index() { // Go to first page by default $this->request->redirect('yourcontroller/page/?page=1'); } public function action_page() { $orm = orm::factory('your_orm'); $pagination = Pagination::factory(array( 'total_items' => $orm->count_all(), 'items_per_page' => 20, ) ); // Pass controller and action names explicitly to $pagination object $pagination->route_params(array('controller' => $this->request->controller(), 'action' => $this->request->action())); // Get data $data = $orm->offset($pagination->offset)->limit($pagination->items_per_page)->find_all()->as_array(); // Pass data and validation object to view echo View::factory('yourview/page', array('data' => $data, 'pagination' => $pagination)); }
按如下方式创建您的 View /页面:
<?php foreach($data as $item) { // ...put code to list items here } // Show links echo $pagination;
根据需要修改application/config/pagination.php。我不得不将
'view'
参数更改为'pagination/floating'
,当页面列表太大时它会显示省略号 (...),这与默认的'pagination/basic'
列出所有页面,无论长度如何。
关于php - 什么是 Kohana 3.2 中最小的完整分页示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8973308/