thinkphp5内报错Call to a member function toArray() on array
使用场景
使用模型查询后,想获取不包含对象内容的数组结构的结果。
使用方式
$gardenAuth = new GardenAuth(); $res = $gardenAuth->where(['id'=>$id])->select()->toArray();
结果
Call to a member function toArray() on array
原因
数据库(database.php)里设置的返回数据结果为数组类型
'resultset_type' => 'array'
解决方式
方法一:
全局:修改Config.php
'resultset_type' => 'collection'
方法二:
局部:在模型中加入
protected $resultSetType = 'collection';
方法三:
推荐,thinkphp自带的一个方法
if (!function_exists('collection')) { /** * 数组转换为数据集对象 * @param array $resultSet 数据集数组 * @return \think\model\Collection|\think\Collection */ function collection($resultSet) { $item = current($resultSet); if ($item instanceof Model) { return \think\model\Collection::make($resultSet); } else { return \think\Collection::make($resultSet); } } } 调用方法: $res = collection($res)->toArray();
无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。