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,html' target='_blank'>current page等。這些信息被傳遞到pagers渲染分頁按鈕或鏈接。 $pages->pageSize = 1;// 每一頁的記錄顯示多少條 $pages->applyLimit($criteria); $post = Post::model()->findAll($criteria);
就在views顯示中加上一下的代碼,就可以顯示出的效果了。
<div class="pagenav" id="pagenavi"> 共有<?php echo $pages->itemCount; ?>頁<?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', ));?>
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答