thinkphp框架/tp5中查询数据分页时,如果使用了group操作,分页不显示问题

前言:thinkphp封装的分页方法还是很好用的,但是当查询语句中有group分组操作时,就会无法显示分页变量
先直接上解决办法了
 $pageData = Db::table('tbl_distraction_buy_log')->alias('d')
            ->join('__OLDMAN__ o','d.oldman_id = o.oldman_id','left')
            ->join('__SERVICE__ s','d.service_id = s.service_id','left')
            ->where($where)
            ->order('d.add_time desc')
            ->group('d.oldman_id')
            ->field('o.oldman_id,o.name as oldman_name,sum(d.project_num) as num_buy')
            ->buildSql();
        $pageData = Db::table($pageData)->alias('d2')->paginate($this->_pagesize, false, ['query' => request()->param()]);

        $this->assign('page',$pageData->render());

注意点:这些都是调试打印时发现的

  • 第一是需要使用buildSql()
  • 第二是使用构造好的子查询时,要再起一个重命名,不然会报语法错误,考虑是为了和子查询里的重命名区分
  • 另一点是建议(性能优化):tp框架的模型和控制器尽量使用Db类静态调用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值