将 Laravel 5.1 升级到 5.2 后,\App::environment() 总是返回 "production"

10

我将 Laravel 5.1 升级到 5.2 版本,一切看起来都很好。 但是在尝试访问应用程序环境时,得到的结果与预期不符。

When i dd($_ENV) this is what i get 
"APP_ENV" => "vagrant"
"APP_DEBUG" => "true"
"DB_HOST" => "localhost"  

But When dd(\App::environment());
"production"

P.S. even I checked in tinker: dd(env('APP_ENV')) gives me "vagrant"
but dd(\App::environment()) gives me "production".
Dont you think it is odd :(

这很奇怪 :(

有人遇到过这个问题吗?

2个回答

15

您在升级过程中错过了一步:

配置

环境变量

在您的app.php配置文件中添加一个环境配置选项,如下所示:

'env' => env('APP_ENV', 'production'),

附注:您可以通过artisan命令检查该值:

php artisan env

@owenconti +1 非常感谢,这也帮助了我。 - Junior
@Cowboy - 你能把我的回复标记为问题的答案吗? - owenconti
当使用homestead时,这对我来说并没有像预期的那样起作用,因为已经有一个通过php-fpm填充的APP_ENV变量,无法通过.env文件覆盖。我在这里写了一个更详细的解释。长话短说:如果您想通过.env文件更改它们,请确保不要在.env文件之外设置任何环境变量。 - Hirnhamster
嘿..来看看我的教程,关于如何加载多个环境 http://developers.ph/laravel-framework/laravel-5/how-to-setup-multiple-environment-for-laravel-5-developers-way/ - Anthony Pillos

0
有时候当你在 .env 文件中做了更改后,它可能无法正确地读取其中的值,这个问题是由于一些配置缓存引起的。尝试运行以下命令,希望能解决问题。
php artisan config:cache
php artisan config:clear
php artisan cache:clear

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接