1

Yii mongodbsuite で 2 つ以上のデータベース接続を作成する方法は?

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上記の接続を使用したクエリの例をいくつか挙げてください。

4

2 に答える 2

2

'mongodb2' => 配列を 'components' => 配列に追加し、EMongoDocument を拡張するモデル (例: ユーザー) に追加するだけです。

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

そしてお仕事です!

于 2012-10-25T06:32:59.547 に答える
0

Yiiでの複数データベースのサポートをご覧ください。

基本的に、メソッドをオーバーライドしてアクティブレコードクラスを変更する必要がありますgetDbConnection()。(与えられたリンクでは、中間継承レイヤーを使用したより良い例があります)

于 2012-10-23T00:38:23.040 に答える