2013-07-22 67 views
7

我正在研究基於Laravel 4的網站,該網站可用於多個數據庫。我需要在每個請求上運行一個查詢,以從其他數據庫中提取記錄。爲模型設置數據庫?

有沒有辦法我可以以某種方式將這個特定的模型綁定到其他數據庫,所以我可以像往常一樣檢索它?

$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

請注意:通過調用DB :: table(「client」)(而不是Client :: query())創建查詢仍然會使用默認連接返回查詢 – ThoQ

+1

使用DB :: table語法時,您需要執行:'DB :: connection('masterDb') - > table(「client」)' –