前言: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类静态调用