想到幾個方法:
ENV
在環境文件 .env
中設個值 , 例如
CURRENT_DATABASE=/a/b/c/master.sqlite
然後可以在 database.php
中:
<?php
// 第二個參數是當.env中不存在 CURRENT_DATABASE 時的預設值
'sqlite' => [
'driver' => 'sqlite',
'database' => env('CURRENT_DATABASE', '/a/b/c/default.sqlite'),
'prefix' => '',
],
JSON
或是直接在別的地方建立 json
文件,再去讀取,例如我在專案目錄底下建立個 database.json
{
"current": "slave",
"slave" : {
"path": "/a/b/slave.sqlite"
},
"master" : {
"path": "/a/b/master.sqlite"
}
}
然後在 database.php
中,去讀取並解析:
<?php
$database = json_decode(file_get_contents(base_path('database.json')), true);
// 吃掉
'sqlite' => [
'driver' => 'sqlite',
'database' => $database[$database['current']]->path,
'prefix' => '',
],
第二種方法的優點在於可以放其他額外資料,不受限於 .env
只能單純設定變數值