zoukankan      html  css  js  c++  java
  • ThinkPhp5 mongodb 使用自定义objectID出错解决

    在Tp5中使用mongodb 使用自定义ObjectId时报错:Cannot use object of type MongoDB\BSON\ObjectID as array

     查询源码发现在topthink/think-mongo/src/Builder.php中发现 它原来的parseData方法这样写的:

        protected function parseData($data, $options)
        {
            if (empty($data)) {
                return [];
            }
    
            $result = [];
            foreach ($data as $key => $val) {
                $item = $this->parseKey($key);
                if (isset($val[0]) && 'exp' == $val[0]) {
                    $result[$item] = $val[1];
                } elseif (is_null($val)) {
                    $result[$item] = 'NULL';
                } else {
                    $result[$item] = $this->parseValue($val, $key);
                }
            }
            return $result;
        }

    这里做下更改就可以了

        protected function parseData($data, $options)
        {
            if (empty($data)) {
                return [];
            }
    
            $result = [];
            foreach ($data as $key => $val) {
                $item = $this->parseKey($key);
                if (is_object($val)) {
                    $result[$item] = $val;
                }elseif (isset($val[0]) && 'exp' == $val[0]) {
                    $result[$item] = $val[1];
                } elseif (is_null($val)) {
                    $result[$item] = 'NULL';
                } else {
                    $result[$item] = $this->parseValue($val, $key);
                }
            }
            return $result;
        }
  • 相关阅读:
    pycharm的一些操作指令和技巧
    Python开发:模块
    python字符编码
    Pyhton开发:Python基础杂货铺
    Python之函数
    python介绍
    记录
    HDOJ3699 A hard Aoshu Problem[暴力]
    HDOJ3697 Selecting courses[贪心]
    HDOJ4054 Hexadecimal View[编码题]
  • 原文地址:https://www.cnblogs.com/panyangfeng/p/6634873.html
Copyright © 2011-2022 走看看