php - Codeigniter 4分页与custome mysql查询
问题描述
在我的 Codeigniter 4 项目中,我使用$db->query('select * from myTable')
方法来获取数据。(直接在没有模型的控制器上使用它)
有没有办法用 Codeigniter 为这种东西初始化分页。我是 Codeigniter 4 的新手,但没有工作$this->pagination->initialize($config);
它说Call to undefined method CodeIgniter\Pager\Pager::initialize()
有没有办法在不使用模型的情况下克服这个问题,我参考了文档(CI4)并做了很多谷歌搜索,但仍然没有运气!
解决方案
基本上在查询功能中,您可以传递您需要的内容。因此,只需添加 LIMIT 和 OFFSET。
$db->query('SELECT * FROM myTable LIMIT 5 OFFSET 0');
所以这个查询应该返回 5 个项目,从 0 开始。LIMIT 表示您需要多少项目,OFFSET 表示您要开始查找的位置。
您提到,您正在构建分页,因此您可以设置变量,从请求中获取限制和偏移量。因为不同页面上的参数应该不同。使用这样的东西。
$limit = $this->request->getPost('limit');
$offset = $this->request->getPost('offset');
$this->db->query("SELECT * FROM `kss_filepaths` LIMIT $limit OFFSET $offset");
但是,请尽量避免在生产中使用这样的代码,因为 LIMIT 子句容易受到 SQL 注入的影响,您可以在此处阅读有关它的更多信息
推荐阅读
- python - 为什么这个列表打印了 3 次而不是 1 次?为什么我的嵌套 for 循环没有按预期工作?
- android - 基于 Android 中的 GeoJson 属性从 Mapbox 上的 URL 加载标记
- excel - 循环行以从一个工作表的列复制到另一个工作表
- nestjs - TypeORM-NestJS 和关系 OneToMany 插入空外键
- python - 给定 n 个电阻器和一个所需电阻 R,找到可以创建最接近 R 的等效电阻的设置
- reactjs - React 应用程序的部署停止在 GitHub 页面上运行
- javascript - 使用 call() 方法与设置原型属性进行继承
- html5-canvas - 在javascript中将png blob转换为jpg blob
- go - 戈朗 | 如何在单个 if 语句中检查多个布尔值是否为真?
- html - 如何将渐变颜色应用于 svg 路径