首页 > 代码库 > thinkphp mongo模型数据库配置
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也是可以正常使用的
thinkphp mongo模型数据库配置