什么是Kohana 3.2中最小的,完整的分页示例?

Jon*_*Lee 2 php pagination kohana-3.2

我在Kohana 3.2中找到了很多关于分页的信息,但大多数分散在论坛评论和博客文章中,没有一个完整的参考资料来源.

(注意:我打算自己回答这个问题)

Jon*_*Lee 6

这对我有用:

  1. https://github.com/kloopko/kohana-pagination下载分页模块(分页已从Kohana 3.2中删除,因此这是一个改编的模块).
  2. 在模块/分页中安装模块.
  3. 在bootstrap.php中添加模块:

    Kohana::modules(array(
        // ... other modules ...
        'pagination' => MODPATH.'pagination'
    ));
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将配置文件从modules/pagination/config/pagination.php复制到application/config/pagination.php.

  5. 将以下操作添加到您的控制器:

     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));
     }
    
    Run Code Online (Sandbox Code Playgroud)
  6. 创建您的视图/页面如下:

    <?php
    foreach($data as $item) {
        // ...put code to list items here 
    }
    
    // Show links
    echo $pagination;
    
    Run Code Online (Sandbox Code Playgroud)
  7. 根据您的需要修改application/config/pagination.php.当页面列表太大时,我不得不更改显示省略号(...)的'view'参数'pagination/floating',不像默认值'pagination/basic'列出所有页面而不管长度.