关于tp5查询出来的数据对分页数据进行修改

最近开发,由于组合统计数据,出现重复数据无法解决,只能拆一个表出来,对数据库进行两次查询,但是需要对查询出来的数据进行整合。于是出现了一点问题

参照了5.0开发文档

$list = Db::name('user')->where('status',1)->paginate()->each(function($item, $key){
    $item['nickname'] = 'think';
    return $item;

});

然而并不行,

再参照博客 https://blog.csdn.net/amberom/article/details/78937765

可能是我的数据有问题 还是无法修改已经分页好的东西

$project        = Db::name('table')->alias('t')                       

 ->field('t.id, t.name, t.tea_name, t.status,count(tp.id) as t_p')                       

 ->join('tea_project tp', 'tp.teacher_id=t.id','left')                       

 ->where($where)                       

 ->group('tp.teacher_id')                        

->paginate(5,false,['query' => request()->param()])                        

->each(function($item, $key){                           

 $wctypeid = $item["id"]; //获取数据集中的id                           

 $num = Db::name('table')->where("teacher_id='$wctypeid'")->count('id'); //根据ID查询相关其他信息                            

$item['num'] = $num; //给数据集追加字段num并赋值                            

return $item;                        });

有谁要是知道答案,可以告诉下,哪里写错了0.0

然后参照博客 https://my.oschina.net/laobia/blog/1786840

通过下面的方法进行了修改,结果显示是成功的 

$project        = Db::name('table')->alias('t')                        

->field('t.id, t.name, t.tea_name, t.status,count(tp.id) as t_p')                       

 ->join('tea_project tp', 'tp.teacher_id=t.id','left')                        

->where($where)                        

->group('tp.teacher_id')                        

->paginate(10);                        

$student        = Db::name('table')->field('count(id) as t_s,teacher_id')->group('teacher_id')->select();                        

$css = $project->all();//因为paginate是个对象 所以要先转化为all()方法获取实际数据的数组                        

foreach ($css as $key => $value) {//不想在foreach里面去循环请求数据库所以先在上面一步查询出来                            

        foreach ($student as $k => $v) {                               

                if($value['id'] == $v['teacher_id']){                                    

                            $value['t_s']= $v['t_s'];                                    

                            $project[$key] = $value;//此处是直接对里面的值进行替换                              

              }                         

       }                     

   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值