LUMEN作為一款API導向很濃的框架,配置極簡化,默認只支持一路DB配置
然而隨着業務復雜度的提高,引入多個數據庫連接似乎無法避免,下面介紹一下LUMEN連接多個數據庫的配置方法:
- 修改.env文件,增加新DB配置,如下:
//DB1 配置 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=dbname DB_USERNAME=dbname DB_PASSWORD=password DB_TIMEOUT=4 //DB2配置 DB_TEST_CONNECTION=mysql DB_TEST_HOST=127.0.0.1 DB_TEST_PORT=3307 DB_TEST_DATABASE=dbname2 DB_TEST_USERNAME=dbname2 DB_TEST_PASSWORD=password DB_TEST_TIMEOUT=4
- 因為LUMEN在加載DB配置時,還是會默認去laravel模塊下尋找相關配置文件,這時修改laravel模塊下的database.php文件
文件位置在:
./vendor/laravel/lumen-framework/config/database.php
添加.env文件中新增的DB配置,如下:
//默認配置 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', 3306), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => env('DB_CHARSET', 'utf8'), 'collation' => env('DB_COLLATION', 'utf8_unicode_ci'), 'prefix' => env('DB_PREFIX', ''), 'timezone' => env('DB_TIMEZONE', '+00:00'), 'strict' => env('DB_STRICT_MODE', false), ], //新增配置 'mysql_test'=>[ 'driver' => 'mysql', 'host' => env('DB_TEST_HOST', 'localhost'), 'port' => env('DB_TEST_PORT', 3306), 'database' => env('DB_TEST_DATABASE', 'forge'), 'username' => env('DB_TEST_USERNAME', 'forge'), 'password' => env('DB_TEST_PASSWORD', ''), 'charset' => env('DB_CHARSET', 'utf8'), 'collation' => env('DB_COLLATION', 'utf8_unicode_ci'), 'prefix' => env('DB_PREFIX', ''), 'timezone' => env('DB_TIMEZONE', '+00:00'), 'strict' => env('DB_STRICT_MODE', false), ],
- 在項目中調用時,直接按database.php中的做法初始化connection就行,如下:
$query = app('db')->connection("mysql_test")->select("...");
作者:天凌
鏈接:https://www.jianshu.com/p/7ab1029ee543
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。