TP6中使用了paginate 后 limit 就不起作用了。
后来在TP6框架中找到分页函数做了如下修改:
路径:
\vendor\topthink\think-orm\src\db\baseQuery.php
第一处:
$defaultConfig = [
'query' => [], //url额外参数
'total' => '', //最大数量
'fragment' => '', //url锚点
'var_page' => 'page', //分页变量
'list_rows' => 15, //每页数量
];
第二处:
if(!empty($config['total'])){
$total = $config['total'];
$simple = false;
}
这样就可以直接使用
paginate(['list_rows'=>50,'total'=>1000,'query'=>$request->param()]);
但是这样还有个问题,按照上面的做法显示1000条记录和20页没错,可是数据库中如果有超出1000条记录,我直接url?page=21
依然可以得到后面的数据,想着继续去修改paginate,然后就只是想想。。。。。
换其他的招,也是网上找了一圈之后有高手提出来的,按照数据的ID进行分割数据,如果我有2000条数据,只想展示1000,那么我就把1001的ID先查出来,后面的事就好办了,也不用去做上面的那些修改操作,只需要:
$data = Menft::order('id desc')->limit(1000,1)->select();
然后在后面的查询语句中加入一个条件大于这个Id就可以了