这篇文章主要介绍了TP3.2框架分页相关实现方法,结合实例形式分析了TP3.2框架分页相关步骤、功能实现方法与操作技巧,需要的朋友可以参考下
本文实例讲述了TP3.2框架分页相关实现方法。分享给大家供大家参考,具体如下:
需要用到分页的继承这个控制器即可
<?php
namespace 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程序设计有所帮助。
沃梦达教程
本文标题为:TP3.2框架分页相关实现方法分析
猜你喜欢
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境) 2023-09-02
- PHP仿tp实现mvc框架基本设计思路与实现方法分析 2022-10-18
- Laravel balde模板文件中判断数据为空方法 2023-08-30
- PHP简单实现二维数组的矩阵转置操作示例 2022-10-02
- laravel实现按月或天或小时统计mysql数据的方法 2023-02-22
- laravel通用化的CURD的实现 2023-03-17
- 用nohup命令实现PHP的多进程 2023-09-02
- php微信公众号开发之秒杀 2022-11-23
- PHP中PDO事务处理操作示例 2022-10-15
- PHP实现微信支付(jsapi支付)流程步骤详解 2022-10-09