ThinkPHP5.0分页默认配置可通过config/paginate.php统一修改,如设list_rows=>10、var_page=>'p'、type=>'bootstrap'、path=>'/admin/list';也可在app/config.php中配置paginate项;控制器中可局部覆盖,如paginate(12,false,['query'=>request()->param()])。

ThinkPHP5.0 的分页默认配置可以通过修改全局配置文件来统一调整,无需每次调用 paginate() 都传参。核心是改 config/paginate.php(或 app/config.php 中的 paginate 项),它会作为所有分页操作的基准设置。
修改 config/paginate.php 配置文件
这是最规范、推荐的方式。如果项目中已存在 config/paginate.php,直接编辑;若不存在,可新建该文件,内容如下:
-
每页条数:设
'list_rows' => 10(原默认为 15) -
分页参数名:设
'var_page' => 'p'(原默认为'page',适合伪静态或避免冲突) -
分页类驱动:设
'type' => 'bootstrap'(保持默认),也可指定自定义类如'type' => 'page\Page'(需确保类路径正确) -
URL 路径处理:加
'path' => '/admin/list'可固定分页链接前缀(常用于路由重写场景)
在 app/config.php 中合并配置(兼容旧项目)
若项目未单独建 paginate.php,可在 app/config.php 的返回数组中添加或覆盖 paginate 键:
'paginate' => [
'type' => 'bootstrap',
'var_page' => 'page',
'list_rows' => 8,
'query' => [], // 全局默认附加查询参数(一般留空,由控制器动态传)
],
注意:此方式下 query 不建议设固定值,否则会干扰搜索等动态条件。
立即学习“PHP免费学习笔记(深入)”;
控制器中按需覆盖配置
全局配置起兜底作用,具体分页仍可局部覆盖。例如带搜索条件时:
- 用
input('param.keyword')获取关键词,并通过'query'透传到分页链接 - 代码示例:
User::where('name', 'like', "%$keyword%")->paginate(12, false, ['query' => request()->param()]) - 此时
list_rows用 12,而其他未指定项(如var_page)仍沿用paginate.php的设定
验证是否生效的小技巧
修改后,可在控制器里临时打印配置检查:
-
dump(config('paginate'));查看当前加载的完整分页配置 - 访问分页页面,查看 HTML 源码中分页链接是否含预期参数(如
?p=2而非?page=2) - 检查
{$list->render()}输出的 HTML 是否使用了你指定的分页类(比如 class 名是否匹配 Bootstrap 或自定义样式)



















