调用pagination分页使用方法详解
首先下载分页模块pagination
http://kohana-modules.com/search?query=pagination
根据自己的版本去下载对应的分页模块
下载到本地kohana
\modules目录中,如下图:
修改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中有,不同的样式,可根据自己的样式进行调整,也可以复制对应的模板,进行修改其中的样式规则
修改调用不同的分页样式的示例:
$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(),
)
);