根据源码,page 方法定义在dayrui/Fcms/Library/Input.php 文件中,方法如下:
说明
- // 后台分页
- public function page($url, $total, $dir = '') {
- $config = require CMSPATH.'Config/Apage.php';
- $config['base_url'] = $url.'&page={page}';
- $config['per_page'] = SYS_ADMIN_PAGESIZE;
- $config['total_rows'] = $total;
- return \Phpcmf\Service::L('page')->initialize($config)->create_links();
- }
这个方法必须传入 $url,而不是只传 $total 和 $pagesize。
$url 是分页的基础URL,$total 是总记录数,$dir 暂时没用。
per_page 默认用的是 SYS_ADMIN_PAGESIZE,不是你传的 $pagesize。
最终调用 \Phpcmf\Service::L('page')->initialize($config)->create_links() 生成分页HTML。
所以调用分页写法为:
如需自定义每页数量,建议用:
- $url = dr_now_url(); // 当前URL
- $pages = \Phpcmf\Service::L('input')->page($url, $total);
完整代码示例:
- $pages = \Phpcmf\Service::L('input')->table_page($url, $total, $config, $pagesize);
- $page = max(1, intval(\Phpcmf\Service::L('input')->get('page')));
- $pagesize = 10;
- $total = \Phpcmf\Service::M()->table('ai_history')->counts();
- // 计算总页数
- $totalPages = ceil($total / $pagesize);
- // 查询当前页数据
- $list = \Phpcmf\Service::M()->db->table('ai_history')
- ->orderBy("listorder", "desc")
- ->orderBy("id", "desc")
- ->limit($pagesize, ($page - 1) * $pagesize)
- ->get()
- ->getResultArray();
- $url = dr_now_url(); // 当前URL
- $pages = \Phpcmf\Service::L('input')->page($url, $total);
- \Phpcmf\Service::V()->assign([
- 'list' => $list,
- 'pages' => $pages, // 分页HTML
- 'page' => $page, // 当前页
- 'total' => $total, // 总记录数
- 'totalPages' => $totalPages, // 总页数
- ]);


















文章点评