前提条件:安装了mongodb数据库
安装了mongo的php驱动
下载Yii的mongo扩展:
下载链接:http://pan.baidu.com/s/1rPtx0
官方下载链接:https://github.com/canni/YiiMongoDbSuite
得到文件:YiiMongoDbSuite.tar.gz
解包,并将该文件放至应用的/protected/extensions文件夹下面
确保文件夹名称为:YiiMongoDbSuite
配置应用
1 vi /protected/config/main.php 2 3 4 5 ‘import‘ => array( 6 ... 7 ‘ext.YiiMongoDbSuite.*‘, // 插件根目录文件 8 ), 9 10 ‘components‘ => array( 11 ... 12 ‘mongodb‘ => array( 13 ‘class‘ => ‘EMongoDB‘, //主文件 14 ‘connectionString‘ => ‘mongodb://127.0.0.1:27017‘, //服务器地址 15 ‘dbName‘ => ‘myDatabaseName‘,//数据库名称 16 ‘fsyncFlag‘ => true, //mongodb的确保所有写入到数据库的安全存储到磁盘 17 ‘safeFlag‘ => true, //mongodb的等待检索的所有写操作的状态,并检查 18 ‘useCursor‘ => false, //设置为true,将启用游标 19 ), 20 ),
这样就配置好了,当然,请确保你的mongodb安装在本地,并且端口号是27107上面的配置才能连接得上。
下面测试一下Model:
将以下代码放至/protected/models/User.php里
1 class User extends EMongoDocument 2 { 3 public $login; 4 public $name; 5 public $pass; 6 7 // This has to be defined in every model, this is same as with standard Yii ActiveRecord 8 public static function model($className=__CLASS__) 9 { 10 return parent::model($className); 11 } 12 13 // This method is required! 14 public function getCollectionName() 15 { 16 return ‘users‘; 17 } 18 19 public function rules() 20 { 21 return array( 22 array(‘login, pass‘, ‘required‘), 23 array(‘login, pass‘, ‘length‘, ‘max‘ => 20), 24 array(‘name‘, ‘length‘, ‘max‘ => 255), 25 ); 26 } 27 28 public function attributeLabels() 29 { 30 return array( 31 ‘login‘ => ‘User Login‘, 32 ‘name‘ => ‘Full name‘, 33 ‘pass‘ => ‘Password‘, 34 ); 35 } 36 }
在控制器里测试一下
$users = User::model()->findAll();
var_dump($users);
如果没有报错,那说明可以正常使用了。