升级到Laravel 5.2后,我的.env
文件值都没有被读取.我按照升级说明进行操作 ; 除了auth.php之外,我的配置文件都没有被更改.它们在之前的版本5.1.19中都运行良好
.env
包含诸如的值
DB_DATABASE=mydb
DB_USERNAME=myuser
Run Code Online (Sandbox Code Playgroud)
config/database.php
包含
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
显然没有拉我的env配置.这会影响我的每个配置文件,包括第三方,如bugsnag.
我也试过了
php artisan config:clear
php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)
更新
试 php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
Run Code Online (Sandbox Code Playgroud)
我尝试安装Laravel 5.2的新副本.我基本上只复制在我的"app"文件夹中; 没有包含额外的作曲家包.还有同样的问题.我在同一台服务器上有其他Laravel 5.2项目正常工作.
我试图获取一些我存储在我的.env文件中的API密钥,以便在刀片javascript中使用.我添加了两个键,如:
APP_ENV=local
APP_KEY=////
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
APP_GOOGLE_MAPS=////
APP_OVERHEID_IO=////
Run Code Online (Sandbox Code Playgroud)
在刀片中,我需要使用Google Maps API和OverheidIO API密钥.我已经尝试获取其中一个默认的.env变量,以防万一我将自定义.env变量格式化错误:
{{ env('APP.ENV') }} // nothing
{{ env('APP_ENV') }} // nothing
{{ env('APP_ENV'), 'test' }} // returns 'test'
Run Code Online (Sandbox Code Playgroud)
有人可以帮我调用刀片中的google maps api和overheidio api key吗?
以下代码适用于我的开发环境(Ubuntu 14.04桌面)
@if(env('APP_ENV') === 'production')
// ... something
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,生产中的刀片视图(ubuntu 14.04服务器)没有得到env变量.
如果我运行php artisan env
响应就好了:当前的应用程序环境:生产
数据库连接正常.从控制器调用的env()帮助器也可以工作.
到目前为止我尝试了什么:
php artisan clear:cache
php artisan config:cache
php artisan clear:cache
php artisan view:clear
我也多次重启apache,没有结果.
有什么建议?谢谢!