天天看點

Yii 分頁方法總結

<span style="font-family: Arial, Helvetica, sans-serif; white-space: normal; ">利用CPagination實作</span>  

在 Controller中如下代碼:

public function actionIndex()    

    {    

        $criteria = new CDbCriteria();    

        $criteria->order = 'createtime desc';        

        $count = Article::model()->count($criteria);    

        $pager = new CPagination($count);    

        $pager->pageSize = 10;             

        $pager->applyLimit($criteria);    

        $artList = Article::model()->findAll($criteria);    

        $this->render('index',array('pages'=>$pager,'list'=>$artList));    

    }    

在視圖中代碼如下:

<div id="pager">    

    <?php    

    $this->widget('CLinkPager',array(    

        'header'=>'',    

        'firstPageLabel' => '首頁',    

        'lastPageLabel' => '末頁',    

        'prevPageLabel' => '上一頁',    

        'nextPageLabel' => '下一頁',    

        'pages' => $pages,    

        'maxButtonCount'=>13    

        )    

    );    

    ?>    

    </div>    

ps:一般寫法:

$criteria = new CDbCriteria;    

$count = DnOnline::model()->count($criteria);    

$pages = new CPagination($count);                   

$pages->pageSize = 5;    

$pages->applylimit($criteria);    

$model = DnOnline::model()->findAll($criteria);  

CDB寫法:    

    $criteria = new CDbCriteria;    

    $sql = "SELECT * FROM USER";    

    $model= Yii::app()->db->createCommand($sql)->queryAll();    

    $pages = new CPagination(count($model));                   

    $pages->pageSize = 4;    

    $pages->applylimit($criteria);    

    $model=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");    

    $model->bindValue(':offset', $pages->currentPage*$pages->pageSize);    

    $model->bindValue(':limit', $pages->pageSize);    

    $model=$model->queryAll();   

$criteria=new CDbCriteria();    

            $result = Yii::app()->db->createCommand($sql_do)->query();    

           $pages=new CPagination($result->rowCount);    

          $pages->pageSize=2;    

            $pages->applyLimit($criteria);    

          $result=Yii::app()->db->createCommand($sql_do." LIMIT 2");    

           $result->bindValue(':offset', $pages->currentPage*$pages->pageSize);    

         $result->bindValue(':limit', $pages->pageSize);    

         $list=$result->query();   

在yii中有自帶的分頁方式,通過cgridview等

上一篇: wvs進階技巧