Yii使用mongo数据库 [ 1.1 版本 ]
做项目需要用到mongodb,因之前没用过mongo今天折腾了半天算是有个大概的了解,下面是我连接mongo做法写在次可以给需要的同学做个参考:
首先要搭建好你的yii以及安装好mongo环境(不会安装mongo的同学可以看下这篇博客http://www.cnblogs.com/mecity/archive/2011/06/11/2078527.html)。
我用到的就是YiiMongoDbSuite插件,这个插件可以到官网下载(http://www.yiiframework.com/extension/yiimongodbsuite/)。
下载好插件后解压到protected > extensions目录 我将文件夹命名为YiiMongoDbSuite,然后找到配置文件protected > config > main.php 在"半自动加载模型组件配置"的地方加载我们需要的YiiMongoDbSuite插件代码如下:
'import'=>array(
'application.models.*',
'application.components.*',
'ext.YiiMongoDbSuite.*',
),
然后配置下mongo数据库链接代码如下:
'mongodb' => array(
'class' => 'EMongoDB', //主文件
'connectionString' => 'mongodb://127.0.0.1:27017', //服务器地址
'dbName' => 'test',//数据库名称
'fsyncFlag' => true, //mongodb的确保所有写入到数据库的安全存储到磁盘
'safeFlag' => true, //mongodb的等待检索的所有写操作的状态,并检查
'useCursor' => false,
),
(在此我还遇到一个问题 我刚配置mongo数据库链接 不是用的"mongodb"结果导致操作库失败 到现在还不明白咋回事 是不是要在哪些地方做修改呢 请知道的朋友告知下 谢谢!)
数据库连接好后我们来操作数据库,看看模型代码:
class User extends EMongoDocument {
public $z;
public static function model($className = __CLASS__){
return parent::model($className);
}
public function getCollectionName()
{
return 'foo';
}
public function addInfo() {
$this->z='1234';
$this->save();
}
}
可以看到我的模型是继承EMongoDocument 不是yii默认的CActiveRecord.控制器代码如下(仅仅是做个插入测试):
public function actionIndex(){
$model = new User();
$model->addInfo();
}
至此一个简单测试完成。
candy110
注册时间:2014-07-18
最后登录:2024-03-08
在线时长:128小时26分
最后登录:2024-03-08
在线时长:128小时26分
- 粉丝28
- 金钱3585
- 威望50
- 积分5365
共 3 条评论
伙子哥 碉堡了 学习一下
那关键就是配置喽。。
支持 yii 1.x么?
测试用的就是1.x,,,,,,