TP3.2框架分页相关实现方法分析

时间:2021-05-26

本文实例讲述了TP3.2框架分页相关实现方法。分享给大家供大家参考,具体如下:

需要用到分页的继承这个控制器即可

<?phpnamespace Home\Controller;use Think\Controller;class BaseController extends Controller { /** * 基础分页的相同代码封装,使前台的代码更少 * @param $count 要分页的总记录数 * @param int $pagesize 每页查询条数 * @return \Think\Page */ function getpage($count, $pagesize = 20,$waps) { $Page = new \Think\Page($count,$pagesize,$waps); $Page->rollPage = 5; $Page->setConfig('header', '<li class="rows">第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>'); $Page->setConfig('prev', '上一页'); $Page->setConfig('next', '下一页'); $Page->setConfig('last', '末页'); $Page->setConfig('first', '首页'); $Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%'); $Page->lastSuffix = false;//最后一页不显示为总页数 return $Page; } /** * @param $model 模型 * @param $map where条件 * @param $find 0 select 1=find 2=关联表 * @return $list 数组 */ function _select($model,$map,$order='',$field="",$find="0",$limit=20,$join,$param){ $waps = $param; if(empty($model) && empty($map)){ $this->list = array(); }else{ if($find == 0){ $count = $model->where($map)->count(); $Page = $this->getpage($count,$limit,$waps); if($Page->firstRow < 0){ $Page->firstRow = 0; } if($order != ""){ $this->list = $model->field($field)->where($map)->order($order)->limit($Page->firstRow. ',' . $Page->listRows)->select(); }else{ $this->list = $model->field($field)->where($map)->limit($Page->firstRow. ',' . $Page->listRows)->select(); } $this->page = $Page->show(); }else if($find == 1){ $this->list = $model->field($field)->where($map)->find(); }else if($find == 3){ $count = $model->alias("t1")->join($join)->where($map)->count(); $Page = $this->getpage($count,$limit,$waps); if($Page->firstRow < 0){ $Page->firstRow = 0; } if($order != ""){ $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->order($order)->limit($Page->firstRow. ',' . $Page->listRows)->select(); }else{ $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->limit($Page->firstRow. ',' . $Page->listRows)->select(); } $this->page = $Page->show(); }else if($find == 4){ if($order != ""){ $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->order($order)->limit($Page->firstRow. ',' . $Page->listRows)->find(); }else{ $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->limit($Page->firstRow. ',' . $Page->listRows)->find(); } } $this->limit = $Page->firstRow; $this->assign("listinfo",$this->list); $this->assign("page",$this->page); return($this->list); } }}

控制器中先继承后使用。

if($this->txt_keyword){ $where['m_title'] = array('like','%'.$this->txt_keyword.'%');} $where['status'] = $param['status'] = 0;$this->_select($this->information_mod,$where,'','*',0,10,'',$param);$this->display();

模板中

<div class="hg_page" > {$page}</div>

分页样式

<style> .hg_page .first, .hg_page .current, .hg_page .num, .hg_page .next, .hg_page .end, .hg_page .rows, .hg_page .prev{ float: left; height: 37px; padding: 0 15px; border: 1px solid #e5e5e5; line-height: 37px; margin: 0 3px; } .hg_page{ text-align: center; height: 37px; margin:0 auto; margin-top: 30px; margin-bottom: 20px; width: 800px; }</style>

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章