Có một vấn đề chính với phương pháp bạn đang sử dụng:
Bạn đã không khởi tạo bất kỳ đối tượng cấu hình nào. Lumen theo mặc định không có bộ đối tượng cấu hình truyền thống, cho đến khi bạn tạo một config
thư mục trong thư mục gốc của bạn.
Như đã viết trong tài liệu cấu hình Lumen:
Tất cả các tùy chọn cấu hình cho khung Lumen được lưu trữ trong tệp .env.
Cách tiếp cận bạn đang thực hiện yêu cầu đối tượng cấu hình truyền thống như được sử dụng trong Laravel.
Để lấy đối tượng đó và retail_db
mới của bạn kết nối cơ sở dữ liệu hoạt động:
- Tạo
config
thư mục trong thư mục gốc dự án của bạn - Sao chép tệp
vendor/laravel/lumen-framework/config/database.php
vào thư mục cấu hình này - Khởi tạo đối tượng cấu hình cơ sở dữ liệu trong
bootstrap/app.php
của bạn với$app->configure('database');
(đặt nó ở dòng 28)
Cấu trúc thư mục của bạn bây giờ trông giống như thế này:
├── app
├── bootstrap
├── config
└── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
Tất nhiên, bạn có thể xóa những kết nối mà bạn không cần khỏi mảng kết nối trong app/config/database.php
bằng cách nhận xét hoặc xóa chúng hoàn toàn.
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 của bạn với những thay đổi:
/*
|--------------------------------------------------------------------------
| 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');
Bây giờ, bạn có thể sử dụng mã bạn đã có trong routes.php
của mình .
Để xóa retail_db
của bạn kết nối, chỉ cần đặt nó thành null
:
$config->set('database.connections.retail_db', null);