需重写分页HTML结构为<nav><ul class="pagination">并配对所有标签,启用use_page_numbers=TRUE实现页码URL,通过application/language/覆盖语言包,确保模型层offset与页码逻辑严格同步。

分页 HTML 结构怎么改才不和 Bootstrap 冲突
CI 默认输出 <div class="pagination"> 包裹的纯链接,直接套 Bootstrap 的 <nav><ul class="pagination"> 会嵌套错层、样式失效。必须重写包裹结构,不能只改 class 名。
- 用
full_tag_open和full_tag_close替换默认<div>,例如:'full_tag_open' => '<nav><ul class="pagination">' -
first_tag_open/last_tag_open等必须配对闭合,漏写</li>会导致整个列表渲染异常 - Bootstrap 要求当前页是
<li class="active"><a>2</a></li>,所以cur_tag_open得设成'<li class="active"><a>',cur_tag_close设为'</a></li>' - 别碰
anchor_class—— CI 3.1+ 已废弃,设了也不生效,还可能触发警告
为什么自定义文字后分页链接点不动
常见原因是 next_link、prev_link 里混入了未转义的 HTML 或 JS,比如写成 next_link => '<i class="fa fa-arrow-right"></i>' 却没处理单引号,导致 PHP 解析失败,create_links() 返回空字符串。
- 统一用双引号包裹配置值,内部 HTML 用单引号:
'next_link' => "<i class='fa fa-chevron-right'></i>" - 如果要用双引号在 HTML 里(如
data-page="2"),必须用反斜杠转义:"data-page=\"2\"" -
first_link或last_link设为FALSE时,对应标签(如first_tag_open)会被忽略——这点文档没明说,但实测如此 - 检查
base_url是否含非法字符或漏掉尾部斜杠,比如site_url('article/index')正确,site_url('article/index') . 'page'就会导致所有链接指向首页
CI 3.x 中如何让分页 URL 显示页码而非 offset
默认 /article/index/20 表示从第 20 条开始,用户看不懂;改成 /article/index/2 才直观。关键在 use_page_numbers = TRUE,但它必须配合 uri_segment 和手动计算 offset 使用。
PigX UI Pro 前端开发指南 - Vue 3 + TypeScript + Element Plus。当用户提到 PigX UI、PigX 前端、lgb-mgui 项目、Vue 3 企业级后台开发、Element Plus 后台开发时使用此技能。
- 启用页码模式:
'use_page_numbers' => TRUE - 保持
'uri_segment' => 3不变(仍取 URL 第三段) - 查询时 offset 要手动算:
$offset = ($page - 1) * $config['per_page'],其中$page = (int) $this->uri->segment(3) -
base_url末尾不要带数字,CI 会自动拼页码,写成site_url('article/index')即可 - 注意:开启
use_page_numbers后,total_rows / per_page必须能整除或向上取整,否则最后一页可能空白
语言包里的分页文字怎么覆盖但不改系统文件
直接改 system/language/en/pagination_lang.php 是危险操作,升级就丢。正确做法是复制到应用目录,再修改。
立即学习“前端免费学习笔记(深入)”;
- 把
system/language/en/pagination_lang.php复制到application/language/en/pagination_lang.php - 编辑新文件,只改你需要的键,例如:
$lang['first_link'] = '首页'; - 确保控制器中已设置语言:
$this->lang->load('pagination');(CI 3.x 默认加载,但多语言站点必须显式调用) - 中文环境要同步复制
zh-CN目录并启用:$this->config->set_item('language', 'zh-CN'); - 如果视图里
echo $links后文字仍是英文,检查application/config/config.php中$config['language']是否拼写错误或路径权限不对
CI 分页样式适配真正的难点不在 HTML 标签替换,而在于 offset 与 page number 两套逻辑共存时,模型层是否严格同步——总数查一次、列表查一次、offset 算一次,三者条件稍有不一致,数据就错位。这个细节没人盯着看,但上线后最常出问题。

















