tp6分页传递额外参数以及传入总记录数

浏览:2994 发布日期:2020/06/29 分类:ThinkPHP6专区
传入总记录数
支持传入总记录数而不会自动进行总数计算,例如:

// 查询状态为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\baseQuery.php
做个记录
最佳答案
评论( 相关
后面还有条评论,点击查看>>