Codeigniter4分页功能正常但Bootstrap4分页模板仅显示1页问题
问题原因
- 视图中
$pager->links()的参数逻辑理解错误:CI4分页类的links()方法第一个参数为分页组名称,第二个参数才是自定义模板名称。你未自定义分页分组时,默认分组名为default,传入不存在的分组名bootstrap会导致分页类无法读取完整的分页数据,仅能识别当前页。 - 若修改参数后仍异常,通常是分页模板存放路径错误:自定义分页模板必须放置在
app/Views/Pagers/目录下,文件名和调用时传入的模板名完全对应。
解决方案
方案1:使用默认分页分组(最快捷)
直接修正视图中的分页调用代码即可:
// 把原来的分页调用代码替换为下面这段 <?= $pager->links('default', 'bootstrap4_pagination'); ?>
方案2:自定义分页分组(可选)
如果你需要指定分组名为bootstrap,先修改控制器中paginate方法的传参,指定分组名:
// 控制器中paginate方法第二个参数传入自定义分组名 $this->data['posts'] = $this->PostModel->getPostsByCategory($post_category_id, $category_is_published, $post_is_published, $pagination )->paginate(3, 'bootstrap');
此时视图中原有的调用代码$pager->links('bootstrap', 'bootstrap4_pagination');即可正常生效。
额外确认项
确保你编写的Bootstrap4分页模板存放在app/Views/Pagers/bootstrap4_pagination.php路径下,文件名大小写和调用时一致。
修改完成后刷新页面即可看到完整的3个页码,同时Bootstrap4样式正常生效。
内容的提问来源于stack exchange,提问作者spreaderman
相关产品推荐
相关产品推荐

