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

标签 php pagination kohana-3.2

我在 Kohana 3.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. 将以下操作添加到您的 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));
     }
    
  6. 按如下方式创建您的 View /页面:

    <?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' 列出所有页面,无论长度如何。

关于php - 什么是 Kohana 3.2 中最小的完整分页示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8973308/

相关文章:

php - 限制 Apigility 中的结果

php - 如何在一个循环中获取包含正确结果值的 mysql 列名称

带行数的 Laravel 分页

php - 使用 DOMDocument 从网站上抓取所有图像

php - 在 Kohana PHP 框架中启用 PECL HTTP

php - NGINX 缓存符号链接(symbolic link)网站位置

php - 如何使用 curl + php 上传名称中包含空格的文件?

wordpress - WooCommerce Storefront - 为什么搜索结果没有分页?

vue.js - 以编程方式更改 Bootstrap Vue 分页

mysql - 以原始数据类型从数据库返回值 (Kohana ORM)