我在Kohana 3.2中发现了很多关于分页的信息,但大多数信息分散在论坛评论和博客文章中,没有单一的完整源代码可供参考。什么是Kohana 3.2中最简单,完整的分页示例?
(注:我打算自己回答这个问题)
我在Kohana 3.2中发现了很多关于分页的信息,但大多数信息分散在论坛评论和博客文章中,没有单一的完整源代码可供参考。什么是Kohana 3.2中最简单,完整的分页示例?
(注:我打算自己回答这个问题)
得到的代码这是我工作:
添加模块中bootstrap.php中:
Kohana::modules(array(
// ... other modules ...
'pagination' => MODPATH.'pagination'
));
从模块/分页/配置/ pagination.php到应用/配置/ pagination.php配置文件复制。
添加以下操作以您的控制器:
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));
}
创建yourview /页,如下所示:
<?php
foreach($data as $item) {
// ...put code to list items here
}
// Show links
echo $pagination;
修改的application/config/pagination.php根据您的需要。我必须将'view'
参数更改为'pagination/floating'
,当页面列表太大时,会显示省略号(...),与默认的'pagination/basic'
不同,后者会列出所有页面,而不考虑长度。
因为他非正式地支持它,所以最好使用shadowhand的分页模块:https://github.com/shadowhand/pagination – badsyntax
分页最初不是工作/在Kohana中3.2的支持。幸运的是,有人已经更新了模块,你可以在https://github.com/kloopko/kohana-pagination
这不是一个搜索我的网站类型的例子。请查看常见问题解答。 – hakre
@hakre我打算自己回答这个问题,因为我在这个问题上花了几个小时,当时我想我可以在几分钟内解决它。这就是为什么我没有在问题中添加更多细节。如果看起来我期待人们为我工作,我很抱歉。 –