thinkphp mongo模型数据库配置

今天尝试使用thinkphp中的mongo模型,发现总是会报错

Call to a member function selectCollection() on a non-object

找了一下原因,发现是配置文件未导入,导致无法连接数据库和实例化模型。看了一下配置文件,并没有任何错误,配置文件如下

return array(
//‘配置项‘=>‘配置值‘
‘DB_CONFIG‘ => array(‘DB_TYPE‘ => ‘mongo‘,
‘DB_HOST‘ => ‘localhost‘,
‘DB_NAME‘ => ‘mydb‘,
‘DB_USER‘ => ‘‘,
‘DB_PWD‘ => ‘‘,
‘DB_PORT‘ => ‘27017‘,
‘DB_PREFIX‘ => ‘‘,
‘DB_CHARSET‘=> ‘utf8‘
)
);

model中:

protected $connection = ‘DB_CONFIG‘;

于是改用另外一种写法,model中直接定义,发现居然成功了

protected $connection = array(‘DB_TYPE‘ => ‘mongo‘,
‘DB_HOST‘ => ‘localhost‘,
‘DB_NAME‘ => ‘mydb‘,
‘DB_USER‘ => ‘‘,
‘DB_PWD‘ => ‘‘,
‘DB_PORT‘ => 27017,
‘DB_PREFIX‘ => ‘‘,
‘DB_CHARSET‘=> ‘utf8‘
);

继续尝试将配置文件改为:

return array(
//‘配置项‘=>‘配置值‘
‘DB_TYPE‘ => ‘mongo‘,
‘DB_HOST‘ => ‘localhost‘,
‘DB_NAME‘ => ‘mydb‘,
‘DB_USER‘ => ‘‘,
‘DB_PWD‘ => ‘‘,
‘DB_PORT‘ => ‘27017‘,
‘DB_PREFIX‘ => ‘‘,
‘DB_CHARSET‘=> ‘utf8‘
);

删除了DB_CONFIG的定义,直接返回,发现也可以成功连接。

不清楚是不是对mongo模型,tp不支持第一种配置方法,但是文档中确实是有这种配置方法的,而且对mysql也是可以正常使用的

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。