ThinkPHP中如何实现分页功能
作者:水悠悠予安
时间:2026-06-26
浏览:0
ThinkPHP中,控制器调用Db类的paginate方法实现数据分页,每页显示条数可自定义。视图层使用{volist}标签循环输出数据,并通过$list->render()生成分页链接,同时可处理空数据时的提示信息及分页样式。
ThinkPHP 的分页功能,用起来其实非常顺手。下面咱们一步步拆解,把整个流程梳理清楚。

先从控制器说起——我们需要调取数据,然后借助 paginate 方法来完成分页。举个例子,每页显示 10 条记录,代码大概长这样:
use thinkDb;
use thinkfacadeView;
class IndexController extends Controller
{
public function index()
{
// 每页显示10条数据
$list = Db::name('your_table')->paginate(10);
// 将数据传递给视图
View::assign('list', $list);
// 渲染视图
return View::fetch();
}
}
这里的 your_table 换成你实际要查询的表名就行。paginate 方法背后已经自动处理了页码计算、数据偏移这些繁琐的细节,我们只需传一个每页条数参数。
接下来是视图层。用 {volist} 标签把数据循环展示出来,就像下面这样:
ID
名称
年龄
{volist name="list" id="item"}
{$item.id}
{$item.name}
{$item.age}
{/volist}
name="list" 对应控制器里传递过来的数据集,id="item" 则是循环中的单条记录变量名,可以任意取,但建议一眼能看出含义。
最后,别忘了把分页按钮放出来。用 $list->render() 就能自动生成一套完整的分页链接,同时最好处理一下空数据的情况:
{if $list->isEmpty()}
没有数据
{else}
{$list->render()}
{/if}
到这里,一个基本的分页功能就成型了。当然,分页样式和参数都可以自定义,比如改成带参数的分页、使用 AJAX 分页等等,这些都是后话了。先把这一步跑通,后续的优化自然水到渠成。
作者最新文章
灵活计算器
2026-09-16 17:45
苹果折叠屏iPhone预计售价是多少
2026-09-14 13:44
OpenAI GPT-6 Astra 自主通关《传送门》:技术原理与实验成本解析
2026-09-08 19:08
苹果与铠侠签署NAND长期供应协议:3-5年长约与不设价格上限背后的供应链战略
2026-09-08 16:58
PDF转PPT操作指南:在线、本地与批量转换及结果核对
2026-09-04 15:04
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































