kohana模块之pagination分页使用方法

首先下载分页模块pagination

http://kohana-modules.com/search?query=pagination
根据自己的版本去下载对应的分页模块
下载到本地kohana
\modules目录中,如下图:
kohana模块之pagination分页使用方法
修改application目录下的bootstrap.php文件开启验证码模块captcha

Kohana::modules(array(
    'auth'       => MODPATH.'auth',       // Basic authentication
   // 'cache'      => MODPATH.'cache',      // Caching with multiple backends
   // 'codebench'  => MODPATH.'codebench',  // Benchmarking tool
    'database'   => MODPATH.'database',   // Database access
   // 'image'      => MODPATH.'image',      // Image manipulation
   // 'minion'     => MODPATH.'minion',     // CLI Tasks
   // 'orm'        => MODPATH.'orm',        // Object Relationship Mapping
   // 'unittest'   => MODPATH.'unittest',   // Unit testing
   // 'userguide'  => MODPATH.'userguide',  // User guide and API documentation
    'pagination'   => MODPATH.'pagination',   // pagination 
   ));

在控制器Article中使用分页


public function action_list(){
    //first calc average count
    $count=model::factory('Article')->article_count();
    //you can change items_per_page
    $num = 4;
    //you can configure routes and custom routes params
    $pagination = Pagination::factory(array(
            'total_items'    => $count,
            'items_per_page' => $num,
            //                    'current_page'   => Request::current()->param("page"),
        )
    )->route_params(array(
                'controller' => Request::current()->controller(),
                'action'     => Request::current()->action(),
            )
     );
    $article_list=model::factory('Article')->article_list($pagination->items_per_page, $pagination->offset);
    $view = View::factory('article/list')->set('article_list',$article_list)->set('pagination',$pagination);
    $view->render();
    $this->response->body($view);
}

模型文件:Article


public function article_list($perpage, $page = 1){
    if ($page < 1) {
        $page = 1;
    }
    $result = DB::select('aid','title','addtime','thumb','type','info','category.cname','article.sort')->from('article')->join('category')->on('category.cid', '=', 'article.cid')->order_by('article.aid','desc')->limit($perpage)->offset($page)->execute();
    return $result;
}

视图文件调用分页:

<?php foreach($article_list as $v): ?>
         <tr>
      <td><?php echo $v['aid']; ?></td>
      <td><?php echo $v['title']; ?></td>
      <td><?php echo $v['cname']; ?></td>
      <td><?php echo date('Y-m-d H:i:s',$v['addtime']); ?></td>
      <td><input type="text" name="sort[]" value="<?php echo $v['sort']; ?>" onchange="changeOrder(this,<?php echo $v['aid']; ?>)"/></td>
      <td>
      <a href="<?php echo Url::site('article/edit').'/'.$v['aid']; ?>">修改</a>
      <a href="javascript:delete_article(<?php echo $v['aid']; ?>)">删除</a>
      </td>
   </tr>
<?php endforeach ?>

   分页调用 
   <?php
   echo $pagination;  
   ?>

分页样式修改:在modules\pagination\views\pagination中有,不同的样式,可根据自己的样式进行调整,也可以复制对应的模板,进行修改其中的样式规则
kohana模块之pagination分页使用方法

修改调用不同的分页样式的示例:

$pagination = Pagination::factory(array(
        'total_items'    => $count,
        'items_per_page' => $perpage,
        //                    'current_page'   => Request::current()->param("page"),
        'view'         => 'pagination/article',
    )
)
    ->route_params(array(
            'controller' => Request::current()->controller(),
            'action'     => Request::current()->action(),
        )
    );