目录 搜索
序言基础安装ThinkPHP开发规范目录结构架构架构总览生命周期入口文件URL访问模块设计命名空间自动加载Traits引入API友好配置配置目录配置格式配置加载读取配置动态配置独立配置配置作用域环境变量配置路由路由模式路由定义批量注册变量规则组合变量路由参数路由地址资源路由快捷路由路由别名路由分组MISS路由闭包支持路由绑定绑定模型域名路由URL生成控制器控制器定义控制器初始化前置操作跳转和重定向空操作空控制器多级控制器分层控制器Rest控制器自动定位控制器资源控制器请求请求信息输入变量更改变量请求类型请求伪装HTTP头信息伪静态方法注入属性注入参数绑定依赖注入请求缓存数据库连接数据库基本使用查询构造器查询数据添加数据更新数据删除数据查询方法查询语法链式操作wheretablealiasfieldorderlimitpagegrouphavingjoinuniondistinctlockcachecommentfetchSqlforcebindpartitionstrictfailExceptionsequence聚合查询时间查询高级查询视图查询子查询原生查询查询事件事务操作监听SQL存储过程数据集分布式数据库模型定义模型初始化新增更新删除查询聚合获取器修改器时间戳只读字段软删除类型转换数据完成查询范围模型分层数组访问和转换JSON序列化事件关联一对一关联一对多关联远程一对多多对多关联多态关联动态属性关联预载入关联统计聚合模型视图视图实例化模板引擎模板赋值模板渲染输出替换模板模板定位模板标签变量输出系统变量请求参数使用函数使用默认值使用运算符三元运算原样输出模板注释模板布局模板继承包含文件标签库内置标签循环输出标签比较标签条件判断资源文件加载标签嵌套原生PHP定义标签日志介绍日志驱动日志写入独立日志日志清空写入授权错误和调试调试模式异常处理抛出异常Trace调试变量调试性能调试SQL调试远程调试404页面验证验证器验证规则错误信息验证场景控制器验证模型验证内置规则静态调用表单令牌安全输入安全数据库安全上传安全其它安全建议杂项缓存SessionCookie多语言分页上传验证码图像处理文件处理单元测试扩展函数类库行为驱动Composer包Time数据库迁移工具WorkermanMongoDbSAE标签扩展命令行自动生成目录结构创建类库文件生成类库映射文件生成路由缓存清除缓存文件生成配置缓存文件生成数据表字段缓存自定义命令行部署虚拟主机环境Linux 主机环境URL重写附录配置参考常量参考助手函数升级指导更新日志
文字

分页实现

版本 新增功能
5.0.5 分页方法返回think\Paginator对象(用法不变)
5.0.1 支持第二个参数直接传入总记录数

ThinkPHP5.0内置了分页实现,要给数据添加分页输出功能在5.0变得非常简单,可以直接在Db类查询的时候调用paginate方法:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = Db::name('user')->where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();

也可以改成模型的分页查询代码:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();

模板文件中分页输出代码如下:

<div>
<ul>
{volist name='list' id='user'}
    <li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list->render()}

也可以单独赋值分页输出的模板变量

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
$this->assign('list', $list);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();

模板文件中分页输出代码如下:

<div>
<ul>
{volist name='list' id='user'}
    <li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$page}

默认情况下,生成的分页输出是完整分页功能,带总分页数据和上下页码,分页样式只需要通过样式修改即可,完整分页默认生成的分页输出代码为:

<ul class="pagination">
<li><a href="?page=1">&laquo;</a></li>
<li><a href="?page=1">1</a></li>
<li class="active"><span>2</span></li>
<li class="disabled"><span>&raquo;</span></li>
</ul>

传入总记录数( V5.0.1

V5.0.1版本开始,支持传入总记录数而不会自动进行总数计算,例如:

// 查询状态为1的用户数据 并且每页显示10条数据 总记录数为1000
$list = User::where('status',1)->paginate(10,1000);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
$this->assign('list', $list);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();

简洁分页

如果你仅仅需要输出一个 仅仅只有上下页的分页输出,可以使用下面的简洁分页代码:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10,true);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();

简洁分页模式的输出代码为:

<ul class="pager">
<li><a href="?page=1">&laquo;</a></li>
<li class="disabled"><span>&raquo;</span></li>
</ul>

由于简洁分页模式不需要查询总数据数,因此可以提高查询性能。

分页参数

主要的分页参数如下: 参数 描述
list_rows 每页数量
page 当前页
path url路径
query url额外参数
fragment url锚点
var_page 分页变量
type 分页类名

分页参数的设置方式有两种,第一种是在配置文件中定义,例如:

//分页配置
'paginate'               => [
    'type'     => 'bootstrap',
    'var_page' => 'page',
],

type属性支持命名空间,例如:

//分页配置
'paginate'               => [
    'type'     => '\org\page\bootstrap',
    'var_page' => 'page',
],

也可以在调用分页方法的时候传入,例如:

$list = Db::name('user')->where('status',1)->paginate(10,true,[
    'type'     => 'bootstrap',
    'var_page' => 'page',
]);
上一篇: 下一篇:
  页面正在加载中