亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 6 config()->get('database.connections

Laravel 6 config()->get('database.connections

PHP
Helenr 2022-07-16 09:48:17
先決條件在我的本地環境中,我正在使用多個租戶和 Redis(需要身份驗證)。為了服務于我正在使用 Valet 的項目。對于這種情況,我正在解決這兩個連接:- basic_foo (is defined in my .env)- tenant_foo (is the one to change to during a request)到目前為止,我成功地改變了連接,如下所示:config()->set('database.connections.mysql',        array_merge(        config()->get('database.connections.mysql') ,         ['database' => 'tenant_foo']    ); 問題但是,現在我看到查詢生成器存在問題,保持或退回到基本連接。當我運行時,我得到了tenant_foo的預期連接結果(對于 Redis 也是如此)dd(config()->get('database.connections.mysql'));當我運行時,我得到了basic_foo的錯誤但明顯有效的結果dd(\DB::connection()); // returns Illuminate\Database\MySqlConnection所以總而言之,應用程序將返回這個 Illuminate\Database\QueryExceptionSQLSTATE[42S02]: Base table or view not found: 1146 Table 'basic_foo.table_bar' doesn't exist...它應該在哪里搜索'tenant_foo.table_bar'尚未解決問題的事情重啟 Redis重新安裝 Redisphp工匠配置:緩存php工匠緩存:清除php工匠路線:清除php工匠視圖:清除php工匠優化作曲家轉儲自動加載像下面這樣簡單地將數據庫名稱更改為tenant_foo是不夠的,因為配置數組與basic_foo保持相同。\DB::connection()->setDatabaseName('tenant_foo');想法我想更改\DB::connection()的配置數組,但我不知道除了 config->set() 之外的其他方法。我安裝了望遠鏡這會影響數據庫連接嗎?還有其他想法嗎?
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

要動態更改數據庫名稱,您應該使用:


DB::disconnect(); 

Config::set('database.mysql.database', 'tenant_foo'); 

DB::reconnect();


查看完整回答
反對 回復 2022-07-16
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

這對我有用:


\DB::disconnect('mysql'); 


Config::set('database.connections.mysql.database', 'tenant_foo');


\DB::reconnect('mysql');


查看完整回答
反對 回復 2022-07-16
  • 2 回答
  • 0 關注
  • 117 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號