传入总记录数
支持传入总记录数而不会自动进行总数计算,例如:
// 查询状态为1的用户数据 并且每页显示10条数据 总记录数为1000
$list = Db::name('user')->where('status',1)->paginate(10,1000);
// 获取分页显示
$page = $list->render();
return view('index', ['list' => $list, 'page' => $page]);
对于UNION查询以及一些特殊的复杂查询,推荐使用这种方式首先单独查询总记录数,然后再传入分页方法官方文档的这个办法虽然可以传入总数,但是不能传递其他参数了修改了一下
WebModel::paginate(['list_rows'=>$pagesize,'total'=>(int)$result['count'],'query' =>$param]);
然后
$defaultConfig = [
'query' => [], //url额外参数
'total' => '', //总数
'fragment' => '', //url锚点
'var_page' => 'page', //分页变量
'list_rows' => 15, //每页数量
];
if (is_array($listRows)) {
$config = array_merge($defaultConfig, $listRows);
$listRows = intval($config['list_rows']);
} else {
$config = $defaultConfig;
$listRows = intval($listRows ?: $config['list_rows']);
}
if(!empty($config['total'])){
$total = $config['total'];
$simple = false;
}文件是这个 \vendor\topthink\think-orm\src\db\ba做个记录
最佳答案