C'è un problema principale con il metodo che stai cercando:
Non hai inizializzato alcun oggetto di configurazione. Lumen per impostazione predefinita non ha un set di oggetti di configurazione tradizionale, finché non crei un config
directory nella tua cartella principale.
Come scritto nei documenti di configurazione di Lumen:
Tutte le opzioni di configurazione per il framework Lumen sono archiviate nel file .env.
L'approccio che stai cercando richiede l'oggetto di configurazione tradizionale utilizzato in Laravel.
Per ottenere quell'oggetto e il tuo nuovo retail_db
connessione al database funzionante:
- Crea una
config
cartella nella radice del tuo progetto - Copia il file
vendor/laravel/lumen-framework/config/database.php
in questa cartella di configurazione - Inizializza l'oggetto di configurazione del database nel tuo
bootstrap/app.php
con$app->configure('database');
(mettilo alla riga 28)
La struttura della tua cartella ora è simile a questa:
├── app
├── bootstrap
├── config
└── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
Ovviamente puoi rimuovere quelle connessioni che non ti servono dall'array di connessioni in app/config/database.php
commentandoli o rimuovendoli completamente.
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),
],
]
Il tuo bootstrap/app.php con le modifiche:
/*
|--------------------------------------------------------------------------
| 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');
Ora puoi usare il codice che hai già nel tuo routes.php
.
Per eliminare il tuo retail_db
connessione, impostalo su null
:
$config->set('database.connections.retail_db', null);