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

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

更改配置后 Laravel DB 連接不刷新

更改配置后 Laravel DB 連接不刷新

PHP
守著星空守著你 2023-05-26 15:24:29
這是我指定的數據庫連接。'mysql_test' => [          'driver' => 'mysql',          'host' => env('DB_HOST', '127.0.0.1'),          'port' => env('DB_PORT', '3306'),          'database'=> '',          'username' => env('DB_USERNAME', 'forge'),          'password' => env('DB_PASSWORD', ''),          'unix_socket' => env('DB_SOCKET', ''),          'charset' => 'utf8mb4',          'collation' => 'utf8mb4_unicode_ci',          'prefix' => '',          'prefix_indexes' => true,          'strict' => true,          'engine' => null,      ],現在我正在嘗試更改database代碼中的值,然后像這樣連接到數據庫 for( $i = 1; $i <=4 ; $i++)    {      $db='test_'.$i;    DB::connection('mysql_test')->statement('CREATE DATABASE '.$db.';' );   Config::set('database.connections.mysql_test.database' , $db);    error_log(config('database.connections.mysql_test.database'));    DB::reconnect('mysql_test');    error_log(DB::connection('mysql_test')->getDatabaseName());  }config價值正在改變,就像第一次一樣error_log,我正在改變我的config價值。但是,當我使用更新后的配置再次連接回同一個連接時,我沒有得到我的數據庫名稱。連接未關聯到任何數據庫。
查看完整描述

6 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

您可以嘗試purge連接,以便斷開連接并將其從數據庫管理器的緩存中刪除:


...


Config::set('database.connections.mysql_test.database', $db);


DB::purge('mysql_test');


dump(DB::connection('mysql_test')->getDatabaseName());


查看完整回答
反對 回復 2023-05-26
?
慕妹3242003

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

配置值更改后需要重新連接數據庫

DB::reconnect("mysql_test");


查看完整回答
反對 回復 2023-05-26
?
紅糖糍粑

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

DB::Purge() 為我修復了它。看起來這是 Laravel 8.x 升級后需要的。在 Laravel 任務確實在需要時切換數據庫連接之前。經過一些更新后,他們不再這樣做了。



查看完整回答
反對 回復 2023-05-26
?
FFIVE

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

DB::setDefaultConnection($connectionName);

為我解決了這個問題。(v8.48)

不需要清除或刷新。


查看完整回答
反對 回復 2023-05-26
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

我在 Laravel 5.7 上遇到了同樣的問題


就我而言DB::purge('mysql_test'),DB::reconnect("mysql_test")也沒有用,所以我這樣做了:


$db_connection_name = 'mysql_test'; // Connection name that i wanted to connect

Config::set('database.default', $db_connection_name);


查看完整回答
反對 回復 2023-05-26
?
慕哥9229398

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

這應該更有效,因為它不必重新連接到數據庫。


DB::table("products")->get(); //tenant A

DB::statement("use tenant_b");

DB::table("products")->get(); //tenant B


查看完整回答
反對 回復 2023-05-26
  • 6 回答
  • 0 關注
  • 297 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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