tp5的mongodb连接类的convertObjectID问题

浏览:679 发布日期:2018/10/08 分类:ThinkPHP5专区 关键字: bug反馈
发现一个mongodb的connection.php的一个问题
//查询操作
public function pageList(){
$where = ['status'=>1];
//$order = 'sort DESC';
$skip = 0;
$limit = 20;

$list = $this->db->table($this->table)->field('status,sort,ctime')->where($where)->order('sort','DESC')->limit($skip,$limit)->select();
echo '<pre>';
print_r($list);

}
然后,报错了
Fatal error: Call to a member function __toString() on integer in D:\web_project\thinkphp5-learn\vendor\topthink\think-mongo\src\Connection.php on line 361
我把这个函数中的
private function convertobjectID(&$data)
{
if (isset($data['_id'])) {
$data['id'] = $data['_id']->__toString();
unset($data['_id']);
}
}
if的条件修改成
if (isset($data['_id'])&&is_object($data['_id'])) {
......
}
为什么会报错呢?
因为我的记录里面_id是会递增的int类型的不是object类型的。
所以当_id是int类型的时候会报错。改好后就不会报错了。
也许我改的不是很到位,让大家见笑了!
Array
(
[0] => Array
(
[_id] => 129
[status] => 1
[sort] => 30
[ctime] => 1538929510
)

[1] => Array
(
[_id] => 128
[status] => 1
[sort] => 29
[ctime] => 1538929510
)
)
最佳答案
评论( 相关
后面还有条评论,点击查看>>