Il y a un problème principal avec la méthode que vous choisissez :
Vous n'avez initialisé aucun objet de configuration. Par défaut, Lumen n'a pas d'ensemble d'objets de configuration traditionnels, jusqu'à ce que vous créiez une config
répertoire dans votre dossier racine.
Comme écrit dans la documentation de configuration de Lumen :
Toutes les options de configuration du framework Lumen sont stockées dans le fichier .env.
L'approche que vous recherchez nécessite l'objet de configuration traditionnel tel qu'utilisé dans Laravel.
Pour obtenir cet objet et votre nouveau retail_db
la connexion à la base de données fonctionne :
- Créer une
config
dossier à la racine de votre projet - Copiez le fichier
vendor/laravel/lumen-framework/config/database.php
dans ce dossier de configuration - Initialisez l'objet de configuration de la base de données dans votre
bootstrap/app.php
avec$app->configure('database');
(mettez-le à la ligne 28)
La structure de vos dossiers ressemble maintenant à ceci :
├── app
├── bootstrap
├── config
└── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
Bien sûr, vous pouvez supprimer les connexions dont vous n'avez pas besoin du tableau des connexions dans app/config/database.php
en les commentant ou en les supprimant complètement.
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),
],
]
Votre bootstrap/app.php avec les modifications :
/*
|--------------------------------------------------------------------------
| 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');
Vous pouvez maintenant utiliser le code que vous avez déjà dans votre routes.php
.
Pour supprimer votre retail_db
connexion, réglez-le simplement sur null
:
$config->set('database.connections.retail_db', null);