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) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部