目的の方法には、主な問題が1つあります。
構成オブジェクトを初期化しませんでした。 config
を作成するまで、Lumenにはデフォルトで従来のconfigオブジェクトが設定されていません。 ルートフォルダ内のディレクトリ。
ルーメン構成ドキュメントに書かれているように:
Lumenフレームワークのすべての構成オプションは.envファイルに保存されています。
目的のアプローチには、Laravelで使用されている従来の構成オブジェクトが必要です。
そのオブジェクトと新しいretail_db
を取得するには データベース接続が機能している:
-
config
を作成します プロジェクトルートのフォルダ - ファイルをコピーします
vendor/laravel/lumen-framework/config/database.php
この設定フォルダへ -
bootstrap/app.php
でデータベース構成オブジェクトを初期化します$app->configure('database');
を使用 (28行目に入れてください)
フォルダ構造は次のようになります:
├── app
├── bootstrap
├── config
└── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
もちろん、app/config/database.php
の接続配列から不要な接続を削除することもできます。 コメントするか、完全に削除します。
app / config / database.php
'connections' => [
/*'testing' => [
'driver' => 'sqlite',
'database' => ':memory:',
],*/
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', base_path('database/database.sqlite')),
'prefix' => env('DB_PREFIX', ''),
],
'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),
],
]
bootstrap / app.php 変更を加えて:
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/
$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);
//$app->withFacades();
// $app->withEloquent();
$app->configure('database');
これで、routes.php
にすでにあるコードを使用できます。 。
retail_db
を削除するには 接続、null
に設定するだけです :
$config->set('database.connections.retail_db', null);