thinkphp分頁使用paginate()方法來實現是十分方便的,但是如果需要對查詢的資訊做進一步的處理才能在前台頁面輸出,就必須透過each()方法,對查詢得到的結果進行遍歷操作。
public function faculty() { //查询院系专业信息 //--查询院系专业信息 $result=Db::name('sys_faculty')->field('*')->paginate(10,false,[ 'query'=>['user'=>'123','role'=>'student'] ])->each(function($item, $key){ //在这里对查询的值进行进一步的整理!!! $f_faculty=Db::name('sys_faculty')->field('name')->where('id',$item['parentid'])->find(); $item['faculty']=$f_faculty['name']; //如果是Db类操作分页数据的话,each方法的闭包函数中需要使用返回值 return $item; }); $this->assign(['result' => $result]); return $this->fetch(); }
直接輸出分頁的話,沒有樣式,不規則,很難看。
下面可以透過簡單的樣式,改善輸出效果:
<style> .page_li{ } .page_li li{ display:inline-block; padding:0px 10px; } .page_li li a{ display:inline-block; padding:0px 4px; color:#0088CC; font-size:small; } .page_li li.active{ color:red; font-size:large; } </style>
效果為:
網路上有人分享的另一個樣式:
<style> /*分页*/ .pagination {} .pagination li { display: inline-block; margin-right: -1px; padding: 5px; border: 1px solid #e2e2e2; min-width: 20px; text-align: center; } .pagination li.active { background: #009688; color: #fff; border: 1px solid #009688; } .pagination li a { display: block; text-align: center; } </style>
效果為:
我們可以採用不同的樣式,進行自由編寫和調整。
當然也可以增加一些想要展示的內容,例如:符合條件的查詢總共有多少筆記錄;
當然你可以透過重構或新建一個分頁樣式類別
類似這個,以此實作。
當然,你也可以採用比較懶的方法,直接在此文件中修改也可以:
下面我只簡單的增加一個總記錄數,以做參考:
那麼就會在分頁後,加上這麼一個統計:
#本文來自ThinkPHP框架技術文章欄位:http://www.php.cn/phpkj/thinkphp/
##以上是thinkphp如何實作分頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!