【问题标题】:What is a minimal, complete example of pagination in Kohana 3.2?Kohana 3.2 中最小的、完整的分页示例是什么?
【发布时间】:2023-03-31 00:00:01
【问题描述】:

我在 Kohana 3.2 中找到了很多关于分页的信息,但大部分都分散在论坛和博客文章中,没有一个完整的来源可供参考。

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

【问题讨论】:

  • 这不是我的网站类型的搜索示例。请查看常见问题解答。
  • @hakre 我打算自己回答这个问题,因为我在这个问题上花了几个小时,我以为我可以在几分钟内解决它。这就是为什么我没有在问题中添加更多细节。如果看起来我期待人们为我做这项工作,我很抱歉。

标签: php pagination kohana-3.2


【解决方案1】:

Kohana 3.2 最初不支持分页。幸运的是,有人更新了模块,你可以在https://github.com/kloopko/kohana-pagination获取代码

【讨论】:

    【解决方案2】:

    这对我有用:

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

      Kohana::modules(array(
          // ... other modules ...
          'pagination' => MODPATH.'pagination'
      ));
      
    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));
       }
      
    6. 按如下方式创建您的视图/页面:

      <?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' 不同,它会列出所有页面而不考虑长度。

      李>

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 2012-10-30
    • 2012-07-01
    • 2021-08-05
    • 2016-03-31
    • 2015-09-03
    • 1970-01-01
    • 2014-02-05
    相关资源
    最近更新 更多