codeigniter分页需配置并加载分页类、查询数据库计算偏移量、视图中显示分页链接、自定义样式与语言、结合uri路由实现干净url。

如果您在使用CodeIgniter开发Web应用时需要展示大量数据,但希望用户通过分页方式逐步浏览,则需借助其内置的分页类来组织数据输出。以下是实现分页功能的具体方法:
一、配置并加载分页类
CodeIgniter提供了一个灵活的分页库,需先进行基础配置,再加载该类以启用分页功能。配置内容包括每页显示条数、分页链接样式及URL参数位置等。
1、在控制器中设置分页配置数组,指定base_url(分页链接的基础URL)、total_rows(数据总条数)、per_page(每页显示数量)等关键参数。
2、使用$this->load->library('pagination')加载分页类。
3、调用$this->pagination->initialize()方法传入配置数组完成初始化。
二、查询数据库并计算偏移量
分页依赖于SQL查询中的LIMIT和OFFSET逻辑,因此控制器需根据当前页码动态计算查询起始位置,确保只取出对应页面的数据子集。
1、通过$this->uri->segment(3)获取URL中第3段路径作为当前页码(如example.com/news/page/2中的“2”)。
2、将页码转换为整数,并与per_page值相乘后减去per_page,得出offset值。
3、将该offset与per_page一同传入模型的查询方法,执行带限制的数据检索。
三、在视图中显示分页链接
分页类生成的HTML链接需嵌入视图模板中,供用户点击跳转。这些链接自动包含当前控制器和方法信息,并保持URL结构一致性。
1、在控制器中调用$this->pagination->create_links()获取已渲染的分页HTML字符串。
2、将该字符串以变量形式传递给视图,例如:$data['links'] = $this->pagination->create_links();
3、在视图文件中直接输出该变量:echo $links;
四、自定义分页样式与语言
默认分页输出为纯文本链接,可通过修改配置项或覆盖CSS类名来适配前端UI需求;同时支持多语言提示文字,提升国际化能力。
1、在配置数组中设置full_tag_open、full_tag_close等键,包裹整个分页区域的HTML标签。
2、使用first_link、last_link、next_link、prev_link等键自定义按钮文字。
3、将分页语言文件(如pagination_lang.php)复制到application/language/对应语言目录下,并按需修改first_link等键的翻译值。
五、结合URI路由实现干净URL分页
当启用CodeIgniter的URI路由功能后,原始含segment参数的分页URL(如/example/page/3)可映射为更简洁的形式(如/example/3),避免暴露内部结构。
1、在application/config/routes.php中添加路由规则,例如:$route['example/(:num)'] = 'example/index/$1';
2、调整控制器中页码获取方式,由原来的$this->uri->segment(3)改为接收路由参数(如函数参数$page)。
3、重新配置分页的base_url,使其匹配新路由格式,例如设为site_url('example/')而非site_url('example/index/')。










