CDbCriteria这是类包使用,包是yii自带专门用来处理类似分类这种功能的。
而我们使用yii框架然后调用这种方法会起到事半功倍的效果,会发现使用这个可以节省非常多的时间。让你高速的使用PHP中分页的功能。
还要使用的一个类包就是CPagination,详细的元素属性就不解释了,能够直接连接过去看API
第一步:
在控制器里面加上一下的代码:
$criteria = new CDbCriteria();$criteria->alias = 'post';//要查询表的别名$criteria->order = 'createtime desc'; // 文章显示的列表时间的长短$criteria->condition = 'type_id=:type_id';//查询记录的条件。跟yii中find()的用法是一样的$criteria->params = array(':type_id' => $id);$criteria->distinct = '';//就是sql查询语句中的distinct的值设置,一般用的少$criteria->group = '';//就是sql查询语句中的group的值设置,一般用的少$criteria->select = '*';//sql查询语句中select语句值得设置,默觉得*$count = Post::model()->count($criteria);//通过设置上述的查询语句,然后查询出来符合上述条件的记录的条数$pages = new CPagination($count);//推断上述的记录可以显示多少页
// CPagination呈现相关信息到页码。
// 当数据须要渲染到多页时,我们可能使用CPagination去呈现信息,诸如total item count, page size,current page等。这些信息被传递到pagers渲染分页button或链接。
$pages->pageSize = 1;// 每一页的记录显示多少条 $pages->applyLimit($criteria); $post = Post::model()->findAll($criteria);
第二步:
就在views显示中加上一下的代码,就能够显示出的效果了。
<div class="pagenav" id="pagenavi"><span>共同拥有<?php echo $pages->itemCount; ?>页</span>
<?php
$this->widget('CLinkPager', array('header' => '','firstPageLabel' => '首页','lastPageLabel' => '末页','prevPageLabel' => '上一页','nextPageLabel' => '下一页','pages' => $pages,'maxButtonCount' => 8));
?
> </div>
假设是使用bootstrap框架的话,能够使用下面的代码。就会显示出bootstrap的效果。<!-- //使用bootstrap样式分页 -->
<?php$this->widget('CLinkPager', array('pages'=>$pages,'header'=>false,'htmlOptions'=>array('class'=>'pagination pull-right'),'selectedPageCssClass' => 'active','hiddenPageCssClass' => 'disabled','firstPageLabel'=>'首页','lastPageLabel'=>'尾页','prevPageLabel'=>'«','nextPageLabel'=>'»','maxButtonCount'=>5,'cssFile'=>false,'firstPageCssClass'=>'previous','lastPageCssClass'=>'next',));
?>
以下是bootstrap的效果:
版权声明:本文博主原创文章。博客,未经同意不得转载。