Yii框架中使用mongodb擴展


前提條件:安裝了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);

 

如果沒有報錯,那說明可以正常使用了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM