搜索
系统检测到您的用户名不符合规范:

tp5的mongodb连接类的convertObjectID问题

浏览:738 发布日期: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
)
)
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
tochenwei
积分:315 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /