4
我有3個域指向相同的Laravel應用程序。我希望每個人都能連接到自己的數據庫,並根據TLD加載自己的語言文件。什麼是我可以設置這些設置的文件?我可以直接在配置文件中執行它,也可以在加載配置之前執行一些事件。在Laravel中動態設置數據庫連接和語言
我所擁有的是一個簡短的函數,它將解析域並獲得頂級域名(TLD),在快速驗證之後,我們將知道將使用哪種數據庫和語言。
我有3個域指向相同的Laravel應用程序。我希望每個人都能連接到自己的數據庫,並根據TLD加載自己的語言文件。什麼是我可以設置這些設置的文件?我可以直接在配置文件中執行它,也可以在加載配置之前執行一些事件。在Laravel中動態設置數據庫連接和語言
我所擁有的是一個簡短的函數,它將解析域並獲得頂級域名(TLD),在快速驗證之後,我們將知道將使用哪種數據庫和語言。
您可以輕鬆地做到這一點與中間件 - 在這裏看到一些文檔:https://laravel.com/docs/master/middleware
你需要將所有的請求都執行控制器之前運行的中間件。該中間件應該配置基於域的應用程序語言環境和連接,然後執行請求。類似於以下邏輯的東西應該這樣做:
public function handle($request, Closure $next)
{
$host = $request->getHost();
//do your logic that determines the language and connection to use based on TLD
$language = $this->getLanguageForTld($host);
//set connection used
Config::set('database.default', $language);
//set application locale
App::setLocale($language);
return $next($request);
}
在Laravel 5中確保使用'\ Config'和'\ App' – ali