Yii 分页链接定制(复合条件分页) [整理学习]

来源:互联网 发布:后期剪辑软件 编辑:程序博客网 时间:2024/05/18 00:39

要实现这样的一个列表分页的功能 如下图片:


分页需要在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,        ));    }


0 0
原创粉丝点击