首先解決配置問題:
如果是正常的隻有一個資料庫的情況,官方推薦的做法是配置application目錄下的database.php檔案,把裡面的參數改成自己的實際參數就可以了。
如果一個項目要用到多個資料庫,就得為多個配置庫各寫一個配置檔案。
前面提到的那個database.php是預設的資料庫配置檔案,TP會自己去加載它,它就是項目的預設資料庫。在項目中直接用Db類去操作資料庫,如果不加額外參數,預設也是讀取的這個資料庫。
按TP5文檔裡對配置檔案的介紹,database.php是特殊的,是以在application目錄下。如果要額外添加别的資料庫配置,就不能也放在application目錄下了。(同樣也不推薦寫在config.php裡,因為那個檔案已經夠長了。而且按照強迫症的要求,已經有一個database.php獨立出來了,第二個資料庫的配置檔案怎麼能寫在一坨配置數組中間?是以必須也是獨立出來的。)
将database.php複制重命名,比如叫database_foo.php。按官方文檔對于額外配置的說明,把這個檔案放到application下的extra目錄中,并修改成你的另一個資料庫的參數。
然後驗證配置有沒有生效:
随便去一個控制器中,寫一段列印出配置數組的代碼,看看你添加的database_foo這個配置有沒有生效。
dump(Config::get());
重新整理一下頁面,Ctrl+F搜尋“database”,在配置數組的鍵中,應該有個“database”就是你的預設資料庫,還有一個“databse_foo”就是你之前添加的2号資料庫配置了。
看到這個,說明配置已經到位了。
如何使用多個資料庫:
在你的業務代碼中,想調用預設資料庫的地方,就照常寫:
Db::table("table1")->select();
想調用2号資料庫的地方就寫:
Db::connect("database_foo")->table("table1")->select();