Ada satu masalah utama dengan metode yang Anda tuju:
Anda tidak menginisialisasi objek konfigurasi apa pun. Lumen secara default tidak memiliki kumpulan objek konfigurasi tradisional, hingga Anda membuat config
direktori di folder root Anda.
Seperti yang tertulis dalam dokumen konfigurasi Lumen:
Semua opsi konfigurasi untuk kerangka kerja Lumen disimpan dalam file .env.
Pendekatan yang Anda tuju memerlukan objek konfigurasi tradisional seperti yang digunakan di Laravel.
Untuk mendapatkan objek itu dan retail_db
baru Anda koneksi database berfungsi:
- Buat
config
folder di root proyek Anda - Salin file
vendor/laravel/lumen-framework/config/database.php
ke folder konfigurasi ini - Inisialisasi objek konfigurasi database di
bootstrap/app.php
. Anda dengan$app->configure('database');
(letakkan di baris 28)
Struktur folder Anda sekarang terlihat seperti ini:
├── app
├── bootstrap
├── config
└── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
Tentu saja Anda dapat menghapus koneksi yang tidak Anda perlukan dari larik koneksi di app/config/database.php
dengan mengomentari atau menghapusnya sepenuhnya.
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 Anda dengan perubahan:
/*
|--------------------------------------------------------------------------
| 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');
Sekarang Anda dapat menggunakan kode yang sudah Anda miliki di routes.php
.
Untuk menghapus retail_db
. Anda koneksi, cukup setel ke null
:
$config->set('database.connections.retail_db', null);