2017-08-21 10 views
1

スリムフレームワークアプリケーションでEloquentにDB接続を追加しようとしました。Eloquentで複数のDB接続をスリムで

そして、私はこれを行う:

$app = new \Slim\App([ 
    'db' => [ 
     'driver' => 'mysql', 
     'host'  => 'localhost', 
     'database' => 'products', 
     'username' => 'user', 
     'password' => 'pass', 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
    ], 
    'db_second' => [ 
     'driver' => 'mysql', 
     'host'  => 'localhost', 
     'database' => 'second', 
     'username' => 'user', 
     'password' => 'pass', 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
    ], 
]); 

$container = $app->getContainer(); 

// connect to db with Illuminate larvel 
$capsule = new \Illuminate\Database\Capsule\Manager; 
$capsule->addConnection($container['settings']['db']); 
$capsule->setAsGlobal(); 
$capsule->bootEloquent(); 
/// END connect to db 

// to accsess the $capsule with our container from our controllers 
$container['db'] = function($container) use ($capsule){ 
    return $capsule; 
}; 

今、私は別の接続に私が設定を持っているdb_second設定を追加する方法を知りません。

モデルでこの接続をどのように使用する必要がありますか?

答えて

2

誰かが必要な場合は、私は答えを見つけた:

// connect to db with Illuminate larvel 
$capsule = new \Illuminate\Database\Capsule\Manager; 
$capsule->addConnection($container['settings']['db']); 
$capsule->addConnection($container['settings']['db_second'], '**db_second**'); 
$capsule->setAsGlobal(); 
$capsule->bootEloquent(); 
/// END connect to db 

と私は入れモデルファイルに:

protected $connection = '**db_second**'; 

私はaddConnectionにし、中に使用する名前で**入れますモデル は同じ名前である必要があります。

関連する問題