编辑:感谢@ PedroFaria99,清除配置缓存解决了这个问题,但是如果有人希望对随机性方面的解释感到自由。
我的laravel 5.5本地安装存在问题(生产环境未受影响)。这里Laravel用作API,并提供客户端VueJS应用程序。
有时候(随机),我的laravel会向我的客户返回500错误。 它可能发生在各种路由上,从不相同的路由,1到10次成功后的HTTP请求以及我检查存储时
[2018-03-09 13:44:08] production.ERROR: PDOException: SQLSTATE[HY000] [1045] Access Denied for user: 'forge'@'@localhost' (password: NO) in [...] Illuminate\Database\Connectors\Connector.php:119
但是,我的.env文件正在建立,而我的database.php正在使用env(),默认参数为" forge"和#34; localhost"。所以我尝试将此参数更改为" test",接下来的500个错误是相同的,但使用" test"而不是"伪造"。
我很困惑,因为这个错误没有系统地发生。
.env文件
APP_ENV=local
APP_DEBUG=true
DB_HOST=localhost
DB_DATABASE=mydatabase
DB_USERNAME=root
DB_PASSWORD=
database.php中
...
'default' => env('DB_CONNECTION', 'mysql'),
...
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'test'),
'username' => env('DB_USERNAME', 'test'),
'password' => env('DB_PASSWORD', '')
...
答案 0 :(得分:1)
尝试
fcm.onNotification().subscribe((data) => {
这是因为laravel在其缓存中保存了env值,如果你的配置没有缓存,它将采用保存在database.php文件中的配置。您无法在运行时直接访问env值。
答案 1 :(得分:0)
我讨厌恢复死线程,但是经过一番深思后,我发现问题可能只是php缺乏线程安全性:https://github.com/laravel/framework/issues/28571和此处的出色文章:https://mattallan.me/posts/how-php-environment-variables-actually-work/