报错:Indirect modification of overloaded element of think\paginator\driver\Bootstrap has no effect

今天遇见了个这个报错:Indirect modification of overloaded element of think\paginator\driver\Bootstrap has no effect,无法通过foreach循环插入数据


原代码

// 数据列表
        $data_list = Db::table('__ORDER_INDEX__')->alias('a')
        						->join('__MERCHANT_USER__ u','a.userid = u.id')
        						->where($map)
        						->order($order)
        						->field("a.*,u.nickname,u.admin_id as admin_ids,u.agent_id")
        						->paginate();
        // 分页数据
        $page = $data_list->render();
        foreach($data_list as $key=>$v){
    
    
          $data_icon=Db::table('__MERCHANT_GOODSPIC__')->where('usermark',$v['customer_msg'])->field('icon')->select();
          if($data_icon==null){
    
    
              $data_list[$key]['icon']='';
          }else{
    
    
              $data_list[$key]['icon']=$data_icon[0]['icon'];
          }
        }

解决后的代码:加了一行
//转换成数据对象
$data_list = $data_list->items();

// 数据列表
        $data_list = Db::table('__ORDER_INDEX__')->alias('a')
        						->join('__MERCHANT_USER__ u','a.userid = u.id')
        						->where($map)
        						->order($order)
        						->field("a.*,u.nickname,u.admin_id as admin_ids,u.agent_id")
        						->paginate();
        // 分页数据
        $page = $data_list->render();
        //转换成数据对象
        $data_list = $data_list->items();
        foreach($data_list as $key=>$v){
    
    
          $data_icon=Db::table('__MERCHANT_GOODSPIC__')->where('usermark',$v['customer_msg'])->field('icon')->select();
          if($data_icon==null){
    
    
              $data_list[$key]['icon']='';
          }else{
    
    
              $data_list[$key]['icon']=$data_icon[0]['icon'];
          }
        }

原因:通过Db查询出来的数据不是纯数组格式,无法直接foreach循环插入数据,需要转换成数据对象的形式才能进行fforeach循环插入数据

猜你喜欢

转载自blog.csdn.net/weixin_44852546/article/details/103035281