thinkphp5报错 Call to a member function toArray() on array
PHP

thinkphp5报错 Call to a member function toArray() on array

蓝科迪梦
2023-08-01 / 0 评论 / 185 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年08月01日,已超过479天没有更新,若内容或图片失效,请留言反馈。
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();
0

评论

博主关闭了所有页面的评论