Es ist ein Hauptproblem bei der Methode, die Sie für gehen:
Sie kein Konfigurationsobjekt initialisiert wurden. Lumen verfügt standardmäßig über kein traditionelles Konfigurationsobjekt, bis Sie ein Verzeichnis config
in Ihrem Stammordner erstellen.
Wie in der Lumen configuration docs geschrieben:
alle Konfigurationsoptionen für das Lumen Rahmen werden in der .env-Datei gespeichert.
Der Ansatz, den Sie anstreben, erfordert das traditionelle Konfigurationsobjekt, das in Laravel verwendet wird.
Um dieses Objekt und Ihre neue retail_db
Datenbankverbindung Arbeits zu erhalten:
- erstellen
config
Ordner in Ihrem Projekt-Stamm
- Kopieren Sie die Datei
vendor/laravel/lumen-framework/config/database.php
auf diese Ordner config
- die Datenbankkonfiguration initialisieren Objekt in Ihrem
app/bootstrap.php
mit $app->configure('database');
(setzen Sie es in Zeile 28)
Ihre Ordnerstruktur wie folgt aussieht jetzt:
├── app
├── bootstrap
├── config
└── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
Natürlich können Sie diese Verbindungen entfernen können Sie nicht durch Kommentare oder entfernen sie vollständig in app/config/database.php
der Verbindungen Array benötigen.
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),
],
]
Ihre bootstrap/app.php
mit den Änderungen:
/*
|--------------------------------------------------------------------------
| 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');
Jetzt können Sie den Code verwenden Sie bereits in Ihrem routes.php
haben.
Um Ihre retail_db
Verbindung zu löschen, setzen sie einfach zu null
:
$config->set('database.connections.retail_db', null);
https://lumen.laravel.com/docs/5.2/database –
@ClaudioKing ich die Dokumentation gelesen haben, aber wenn doesn Sagen Sie nichts über Datenbankverbindungen zur Laufzeit. – BernalCarlos