thinkphp5报错:Indirect modification of overloaded element

在使用Thinkphp5.1进行项目开发的时候,报出了一个错误:Indirect modification of overloaded element....has no effect。

详细代码如下:

  1. /**
  2.      * @title 需求大厅
  3.      * @author zxn
  4.      * @url /member/master/need_hall
  5.      * @param name:fix_type type:integer require:0 default: desc:安装类型
  6.      * @param name:status type:integer require:0 default: desc:派工状态
  7.      * @method POST
  8.      * @header name:Authorization require:1 default:1455523e6d407a3c desc:token
  9.      */
  10.     public function need_hall(){
  11.         $param = $this->request->param();
  12.         $map = [];
  13.         $map[] = ['is_deleted','=',0];
  14.         if(isset($param['fix_type']) && $param['fix_type'] >= 0) $map[] = ['fix_type','=',intval($param['fix_type'])];
  15.         if(isset($param['status']) && in_array($param['status'],[0,1])) $map[] = ['status','=',intval($param['status'])];
  16.         $list = MemberDemandModel::where($map)->with('member')
  17.             ->order('id desc')
  18.             ->field('master_id,master_name,master_mobile,master_time,is_deleted,mobile,address',true)
  19.             ->paginate()
  20.             ->each(function ($item){
  21.                 $images = explode(",",$item['images']);
  22.                 $image_list = [];
  23.                 foreach ($images as &$key){
  24.                     $image_list[] = set_up_img($key);
  25.                 }
  26.                 $item['images'] = $image_list;
  27.                 $item['fix_type'] = MasterModel::getFixTypeAttr($item['fix_type']);
  28.                 $item['member']['avatar'] = getAvatar($item['member']['avatar']);
  29.                 return $item;
  30.             });
  31.         return returnData(1,'请求成功',$list);
  32.     }

上述代码是修改后的。原因是模型查询each()中不能使用foreach遍历对数据元素进行赋值,解决办法是采用一个中间变量,比如上述代码中的image_list

 

 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!