今天遇见了个这个报错: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循环插入数据