2012-10-22 46 views
1

如何在Yii mongodbsuite中建立兩個或多個數據庫連接?Yii mongodbsuite兩個以上的數據庫連接

我加入main.php 2個DB組件:

'components' => array(

    'mongodb' => array(
     'class'    => 'common\extensions\MongoDB', 
     'connectionString' => 'mongodb://localhost:27017/table1', 
     'dbName'   => 'table1', 
     'fsyncFlag'   => false, 
     'persistentConnection' => 'x', 
     'replicaSet'  => false, 
     'safeFlag'   => true, 
     'useCursor'   => false, 
    ), 

    'mongodb2' => array(
     'class'    => 'common\extensions\MongoDB', 
     'connectionString' => 'mongodb://localhost:27017/table2', 
     'dbName'   => 'table2', 
     'fsyncFlag'   => false, 
     'persistentConnection' => 'x', 
     'replicaSet'  => false, 
     'safeFlag'   => true, 
     'useCursor'   => false, 
    ), 

) 

但如何在查詢中使用mongodb2(例如: - > findByAttributes())我不知道。 請使用上面的mongodb2連接提供一些示例查詢。

+0

這是一個重複的http://stackoverflow.com/questions/12778422/yii-multiple-databases-connection-fails – Asgaroth

回答

2

我只是將'mongodb2'=>數組添加到'components'=>數組並添加到擴展EMongoDocument的模型(例如:User):

public function getMongoDBComponent() {return Yii::app()->mongodb2;} 

它是工作!

0

看一看Multiple db support in Yii

基本上你必須通過覆蓋getDbConnection()方法來修改你的活動記錄類。 (在給定的鏈接你有一個更好的例子,使用中間繼承層)

+0

在我的項目中,所有模型擴展\ web \ extensions \ MongoDocument(不是CActiveRecord)。所以Yii中的多個db支持不適合我。 –