首页 > 编程 > PHP > 正文

yii分页组件用法实例分析

2020-03-22 16:47:40
字体:
来源:转载
供稿:网友
本文实例讲述了yii分页组件用法。分享给大家供大家参考,具体如下:该案例使用时,分页类在yii框架中以组件的形式存在于components中。action代码如下:html' target='_blank'>public function actionIndex(){ $user=User::model(); //分页的使用 $count=$user- count(); //获取总页数 $pagesize=3; //每一页显示的记录条数 $page=new Page($count,$pagesize); $sql="select * from {{user}} $page- limit"; $info=$user- findAllBySql($sql); $show_page=$page- fpage(); $this- renderPartial("index",array("info"= $info,'show_page'= $show_page));在view页面,遍历info即可获取信息,输出show_page即可显示分页列表等信息。现附上page.php代码如下: * 分页类,以组件形式存在于componnets文件中class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; private $uri; private $pageNum; //页数 private $config=array('header'= "个记录", "prev"= "上一页", "next"= "下一页", "first"= "首 页", "last"= "尾 页"); private $listNum=8; * $total * $listRows public function __construct($total, $listRows=10, $pa=""){ $this- total=$total; $this- listRows=$listRows; $this- uri=$this- getUri($pa); $this- page=!empty($_GET["page"]) $_GET["page"] : 1; $this- pageNum=ceil($this- total/$this- listRows); $this- limit=$this- setLimit(); private function setLimit(){ return "Limit ".($this- page-1)*$this- listRows.", {$this- listRows}"; private function getUri($pa){ $url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], ' ') '':" ").$pa; $parse=parse_url($url); if(isset($parse["query"])){ parse_str($parse['query'],$params); unset($params["page"]); $url=$parse['path'].' '.http_build_query($params); return $url; function __get($args){ if($args=="limit") return $this- limit; else return null; private function start(){ if($this- total==0) return 0; else return ($this- page-1)*$this- listRows+1; private function end(){ return min($this- page*$this- listRows,$this- total); private function first(){ $html=''; if($this- page==1) $html.=''; else $html.=" a href='{$this- uri}&page=1' {$this- config["first"]} /a return $html; private function prev(){ $html=''; if($this- page==1) $html.=''; else $html.=" a href='{$this- uri}&page=".($this- page-1)."' {$this- config["prev"]} /a return $html; private function pageList(){ $linkPage=""; $inum=floor($this- listNum/2); for($i=$inum; $i $i--){ $page=$this- page-$i; if($page 1) continue; $linkPage.=" a href='{$this- uri}&page={$page}' {$page} /a $linkPage.=" {$this- page} "; for($i=1; $i =$inum; $i++){ $page=$this- page+$i; if($page =$this- pageNum) $linkPage.=" a href='{$this- uri}&page={$page}' {$page} /a else break; return $linkPage; private function next(){ $html=''; if($this- page==$this- pageNum) $html.=''; else $html.=" a href='{$this- uri}&page=".($this- page+1)."' {$this- config["next"]} /a return $html; private function last(){ $html=''; if($this- page==$this- pageNum) $html.=''; else $html.=" a href='{$this- uri}&page=".($this- pageNum)."' {$this- config["last"]} /a return $html; private function goPage(){ return ' input type="text" value="'.$this- page.'" input type="button" value="GO" function fpage($display=array(0,1,2,3,4,5,6,7,8)){ $html[0]=" 共有 b {$this- total} /b {$this- config["header"]} "; $html[1]=" 每页显示 b ".($this- end()-$this- start()+1)." /b 条,本页 b {$this- start()}-{$this- end()} /b $html[2]=" b {$this- page}/{$this- pageNum} /b $html[3]=$this- first(); $html[4]=$this- prev(); $html[5]=$this- pageList(); $html[6]=$this- next(); $html[7]=$this- last(); $html[8]=$this- goPage(); $fpage=''; foreach($display as $index){ $fpage.=$html[$index]; return $fpage;希望本文所述对大家基于yii框架的PHP程序设计有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表