ThinkPHP 6 提供便捷分页功能,通过控制器调用模型的 paginate 方法实现数据分页,每页条数、页码和总数据自动处理;在视图中使用 {$list->render()} 输出分页HTML,默认生成Bootstrap风格;支持自定义配置如每页数量、URL参数保留和锚点设置;可通过复制修改 paginate.tpl 模板文件深度定制分页结构;结合CSS可美化样式,适配Element Plus或Layui等前端框架,灵活性强,易于扩展。
ThinkPHP 框架提供了便捷的分页功能,能够快速实现数据列表的分页展示。本文以 ThinkPHP 6 为例,介绍如何使用内置分页组件,并自定义分页样式。
在控制器中调用模型的 paginate 方法即可开启分页。该方法会自动处理当前页码、每页数量和总数据条数。
// 控制器代码示例上述代码表示每页显示 10 条数据,ThinkPHP 会自动从请求中获取 page 参数(如 ?page=2),并返回包含分页信息的数据对象。
在视图模板中,通过调用分页对象的 render 方法输出分页 HTML。
e="list" id="vo"}{$vo.name}
render 方法默认生成 Bootstrap 风格的分页 HTML,适用于大多数前端框架。
如果需要修改分页的外观或行为,可以通过配置参数或继承分页类实现。
默认分页模板位于 vendor/topthink/framework/src/view/paginate.tpl,可复制到 app/view/layout/paginate.tpl,然后在配置文件中指定:
// config/app.php在自定义模板中可完全控制 HTML 结构,例如改为更简洁的“上一页 / 下一页”按钮,或添加跳转输入框。
即使使用默认输出,也可以通过 CSS 调整外观。
.pagination {结合前端框架如 Element Plus 或 Layui 时,也可通过自定义模板适配其分页结构。
基本上就这些,ThinkPHP 的分页机制灵活且易于扩展,既能快速上手,也支持深度定制。