【thinkphp6】Indirect modification of overloaded element of think\Collection has no effect 2021-05-09 PHP 暂无评论 2365 次阅读 在进行查询并循环时候 报错 【thinkphp6】Indirect modification of overloaded element of think\Collection has no effect ``` $data_list = Db::name("activity") ->where('id',1) ->select(); if(!empty($data_list)){ foreach ($data_list as $key => $value) { $company_mes = $CompanyModel->get_company_mes($value['company_id']); $data_list[$key]['company_name'] = $company_mes['company_name']; $data_list[$key]['company_logo'] = $company_mes['company_logo']; } } ``` 原因就是:此时用select() 方法得出的结果是对象。打印一下data_list 解决办法:再加一句下边代码,在进行循环处理 ``` $data_list = $data_list->all(); ``` 或者直接在链接查询后边追加 一下: `select()->all()` 因为select()查询出来的是对象需要把select()查询对象转成数组,也可以`select()->toArray()`一下。 参考 https://www.cnblogs.com/richerdyoung/p/12144692.html https://blog.csdn.net/weixin_45285275/article/details/108801450 标签: select, toarray 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。