2013-07-22 9 views
7

私は複数のデータベースで動作するLaravel 4ベースのサイトに取り組んでいます。別のデータベースからレコードを取り出す要求ごとに実行する必要のあるクエリが1つあります。モデルのデータベースを設定しますか?

この特定のモデルを別のデータベースに結びつける方法はありますか?私はそれをいつものように取り出すことができますか?

$client = Client::find(Session::get('client_id')); 

アドバイスありがとうございます。

おかげ

答えて

23
// Model 
class Client extends Eloquent 
{ 
    protected $connection = 'masterDb'; 
} 


// config/database.php 
'masterDb' => array(
    'driver' => 'mysql', 
    'host'  => 'localhost', 
    'database' => 'name', 
    'username' => 'user', 
    'password' => 'pass', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
), 

好きなだけという名前の接続を作成することができます。そのうちの1つをデフォルトとして設定すると、各モデルは後でこれらの接続のいずれかを使用できます。

+1

Client :: query()の代わりにDB :: table( "client")を呼び出してクエリを作成すると、デフォルトの接続を使用してクエリが返される – ThoQ

+1

DB :: table構文を使用する場合は、 : 'DB :: connection( 'masterDb') - >テーブル(" client ")' –

関連する問題