前提条件:安装了mongodb数据库
安装了mongo的php驱动
下载Yii的mongo扩展:
这是YiiMongoDbSuite的1.3.6版本
支持PHP Mongo驱动的版本为1.0.5及以下
下载链接:http://pan.baidu.com/s/1jGuWP1O
其它版本下载链接: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);
如果没有报错,那说明可以正常使用了。
|