我在config/database.php
中有一个mysql数据库连接,如下所示,它工作正常。
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
我正在尝试定义另一个备用连接(用于测试目的),如下所示。 (相同的主机但不同的数据库):
'mysql_testing' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE_TEST', 'forge'),
'username' => env('DB_USERNAME_TEST', 'forge'),
'password' => env('DB_PASSWORD_TEST', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
其中DB_DATABASE_TEST
,DB_USERNAME_TEST
和DB_PASSWORD_TEST
在.env
中定义如下:
DB_DATABASE_TEST=db_other
DB_USERNAME_TEST=usr_other
DB_PASSWORD_TEST=secret
但是,第二个连接不工作。
在修补程序中,如果我尝试使用新连接:
DB ::连接(' mysql_testing') - > getPdo()
InvalidArgumentException,消息'数据库[mysql_testing]没有 被配置'
如果我尝试检查配置值,mysql
有效,但新连接mysql_testing
返回null:
Config::get('database.connections.mysql')
[
"driver" => "mysql",
"host" => "127.0.0.1",
"port" => "3306",
"database" => "***",
"username" => "***",
"password" => "***",
"charset" => "utf8",
"collation" => "utf8_unicode_ci",
"prefix" => "",
"strict" => false,
"engine" => null,
]
Config::get('database.connections.mysql_testing')
null
知道如何调试此问题?
答案 0 :(得分:0)
这是因为Laravel 5自动缓存配置值。因此,即使我们更改config / database.php值,更改也不会生效,因为Laravel将继续从缓存中读取它。
有一种清除缓存的方法。 但这不会清除配置缓存
php artisan cache:clear
幸运的是,有一个不同的工匠命令。 要清除配置缓存,您需要使用
php artisan config:clear