要实现这样的一个列表分页的功能 如下图片:
分页需要在controller里面实例化CPagination对象,这个对象有一个public属性-----route,这个属性默认是为空的,也就是分页的链接是以当前请求的url为准的。
我们可以给他赋值,yii就会以我们想要的地址去写分页链接的地址了。
//controller $pager = new CPagination; $pager->route = ‘site/userlist‘; //最终生成的地址会是:*******index.php?r=site/userlist //或者可以这样加上参数 $url = ‘&id=5&action=search‘; $pager->route = ‘site/userlist‘ . $url; //最终生成的地址会是:*******index.php?r=site/userlist&id=5&action=search //view层不需要做任何改变
//controller $_GET[‘action‘] = ‘search‘;//或 $action = Yii::app()->request->getParam(‘action‘,‘search‘); $_GET[‘username‘] = ‘test‘; $pager = new CPagination; //假如你当前请求的地址是*****index.php?r=r=site/userlist //那么最终生成的url会是*****index.php?r=r=site/userlist&action=search&username=test //view层不需要做任何改变
我实际中用到的代码如下所示:
public function actionIndex() { $criteria = new CDbCriteria(); $grade = $this->_gets->getParam(‘grade‘,0); if ($grade) { $criteria->addCondition(‘view_flag=‘.$grade); } $cid = $this->_gets->getParam(‘cid‘,0); $count = UpFile::model()->count($criteria); $pager = new CPagination($count); $pager->pageSize = 5; //每页显示的个数 $pager->route = ‘‘; $pager->applyLimit($criteria); $criteria->select = ‘file_id,file_title‘; $info = UpFile::model()->findAll($criteria); $this->render(‘index‘,array(‘info‘=>$info,‘pager‘=>$pager, ‘pcid‘=>$cid,‘pgrade‘=>$grade, )); }
Yii 分页链接定制(复合条件分页) [整理学习],布布扣,bubuko.com
原文:http://blog.csdn.net/liangpz521/article/details/19985387