2012-10-22 2 views
1

Yii mongodbsuite에서 둘 이상의 데이터베이스 연결을 만드는 방법은 무엇입니까? (-> findByAttributes() 전은) 내가 모르는Yii mongodbsuite 둘 이상의 데이터베이스 연결

'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를 사용하는 방법 :

나는 main.php 2 개 DB 구성 요소를 추가했다. 위의 mongodb2 연결을 사용하여 몇 가지 예시 쿼리를 제공하십시오.

+0

이것은 http://stackoverflow.com/questions/12778422/yii-multiple-databases-connection-fails의 사본입니다. – Asgaroth

답변

2

'mongodb2'=> array를 'components'=> array에 추가하고 EMongoDocument :

을 확장 한 모델 (예 : User)에 추가하십시오.
public function getMongoDBComponent() {return Yii::app()->mongodb2;} 

그리고 작품입니다!

0

Multiple db support in Yii을 살펴보십시오.

기본적으로 getDbConnection() 메서드를 재정 의하여 활성 레코드 클래스를 수정해야합니다. (주어진 링크에서 중간 상속 레이어를 사용하는 더 나은 예가 있습니다)

+0

내 프로젝트에서 모든 모델은 \ web \ extensions \ MongoDocument (CActiveRecord가 아닙니다)를 확장합니다. 그래서 Yii의 다중 데이터베이스 지원은 나를 위해 작동하지 않습니다. –

관련 문제