2016-11-27 151 views
-1


我該如何更改Laravel動態數據庫?比方說,我們有以下變量:
laravel 5動態mysql數據庫

  • $主機(MySQL主機/ IP)
  • $用戶(MySQL用戶名)
  • $名(MySQL數據庫名)
  • $通(MySQL的用戶密碼)

如何在Laravel 5中連接到此MySQL服務器而無需每次都在配置中進行設置?

問候

+0

在'.env'文件? – jycr753

+0

@ jycr753啊不,我從我的內部數據庫中獲取這個變量,它是在**。env **中設置的。但我需要連接到外部數據庫的變量,我不能設置每個服務器的配置(+200),因爲用戶刪除他們的服務器或添加新的... –

回答

1

試試這個假設的模型Book

use Book; 
 
use Illuminate\Support\Facades\DB; 
 
use Illuminate\Support\Facades\Config; 
 

 
public function configureDatabase($database){ 
 
     Config::set("database.connections.$database", array(
 
      'driver' => 'mysql', 
 
      'host'  => 'localhost', 
 
      'database' => "$database", 
 
      'username' => 'root',//User name here 
 
      'password' => '***', //Password here 
 
      'charset' => 'utf8', 
 
      'collation' => 'utf8_unicode_ci', 
 
      'prefix' => '', 
 
     )); 
 
    } 
 

 
public function getBooks($database){ 
 
    $this->configureDatabase($database) 
 
    return Book::on($database)->all(); 
 
}

+0

我可以在一次執行中使用幾乎無限次的配置嗎?配置::設置有限嗎? –

+0

當然可以。文檔沒有說Config :: set()的調用是有限的。請記住,它創建了一個到另一個數據庫的新連接,這是一個昂貴的計算。 –

+0

謝謝。你能回答爲什麼我的問題被低估嗎?什麼問題?沒有代碼?對於這個問題,我認爲沒有必要的代碼。 –