2016-12-14 135 views
3

我需要創建多個連接來訪問不同的數據庫/模式。不能使用一個dbconnection。有沒有辦法在laravel雄辯或db生成器中傳遞數據庫名稱?目前在原始的PHP我使用一個連接來查詢不同的架構。LARAVEL雄辯的查詢多模式

回答

3

創建與您的database.php文件不同的連接,然後將它們傳遞給您的雄辯模型。

'mysql1' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db1', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

// connection 2 
'mysql2' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db2', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

假設我有模型user.php的使用我的模型內名爲MySQL連接mysql1

我會添加:

protected $connection = 'mysql1'; 

如果我想使用一個名爲MySQL連接mysql2 然後我會使用

protected $connection = 'mysql2'; 

在這裏,我將靜態連接設置爲mod ELS。

+0

非常感謝信息 – Arav

+0

很高興幫助! –

1

雄辯,我使用DB:連接()來設置我的命名連接,就像這樣:

 $query = DB::connection('db_connection_name')->table($this->table) 

如果你不知道,數據庫連接在配置應用程序/配置/數據庫命名.php

+0

非常感謝信息 – Arav