2012-01-23 71 views
2

我在Kohana 3.2中发现了很多关于分页的信息,但大多数信息分散在论坛评论和博客文章中,没有单一的完整源代码可供参考。什么是Kohana 3.2中最简单,完整的分页示例?

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

+1

这不是一个搜索我的网站类型的例子。请查看常见问题解答。 – hakre

+0

@hakre我打算自己回答这个问题,因为我在这个问题上花了几个小时,当时我想我可以在几分钟内解决它。这就是为什么我没有在问题中添加更多细节。如果看起来我期待人们为我工作,我很抱歉。 –

回答

6

得到的代码这是我工作:

  1. https://github.com/kloopko/kohana-pagination下载分页模块(从Kohana的3.2移除分页,所以这是一个适应模块)。
  2. 将模块安装在模块/分页中。
  3. 添加模块中bootstrap.php中:

    Kohana::modules(array(
        // ... other modules ... 
        'pagination' => MODPATH.'pagination' 
    )); 
    
  4. 从模块/分页/配置/ pagination.php到应用/配置/ 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)); 
    } 
    
  6. 创建yourview /页,如下所示:

    <?php 
    foreach($data as $item) { 
        // ...put code to list items here 
    } 
    
    // Show links 
    echo $pagination; 
    
  7. 修改的application/config/pagination.php根据您的需要。我必须将'view'参数更改为'pagination/floating',当页面列表太大时,会显示省略号(...),与默认的'pagination/basic'不同,后者会列出所有页面,而不考虑长度。

+0

因为他非正式地支持它,所以最好使用shadowhand的分页模块:https://github.com/shadowhand/pagination – badsyntax

相关问题