为什么设置了配置项 App_ENV 不生效?

安装切换登陆用户的扩展包后,试着修改APP_ENV的值不为local,但是发现页面中依然加载了切换用户的按钮。
然后打印dd(env('APP_ENV'));发现值还是为"local"??

后续尝试修改了其他配置项的值,然后打印出来都是重新设置的值,唯独APP_ENV设置值是不生效的,求解

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

@doderic 谢谢!问题已解决!

在homtstead虚拟机配置文件Homestead.yaml中有如下代码:

variables:
    - key: APP_ENV
      value: local

意思大概是设置了一些环境变量

可以看到设置了APP_ENV的值为local

没错,就是这个键值对

当修改local并且运行vagrant provision && vagrant reload重新加载 Homestead.yaml 配置并重启虚拟机后,在项目中打印env('APP_ENV'),值为修改后的新值

所以这个在上线后应该还是获取的.env文件中的值

5年前 评论
讨论数量: 12
ruodee

你设置成什么了?

5年前 评论

同样设置无效,在 config/app.php 中修改 env 选项,将读取的 APP_ENV 改为其它可以生效,比如:

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

然后在 .env 中配置 APP_ENV2 的值,这样可以实现运行环境的切换,原因不明。

5年前 评论

@老好人 改的production,打印出来是"local",改啥,打印出来都是"local"...
我git回滚到第一次提交的时候,仿佛是个全新的laravel,然后试着修改,依旧不行,但是我到我其他laravel项目里修改,都是可以的,有毒吧
我在想是不是项目运行期间被动态修改了??还是怎么滴?这个怎么排查啊哦

5年前 评论

@doderic 可以的,谢谢,但是还是想知道为啥。。
并且这样修改后要修改很多地方,比如判断是否为本地环境的 app()->isLocal() 方法等。。

5年前 评论
ruodee

清除一下缓存
php artisan cache:clear
php artisan config:clear

5年前 评论

@Goodbye 并不需要改很多地方,搜索整个项目发现只有一处调用了 APP_ENV,就是 config/app.php 下的 env 选项。

5年前 评论

@老好人 同样未能生效,拿教程一项目来试,一样不起作用,不解。

5年前 评论

@doderic 谢谢!问题已解决!

在homtstead虚拟机配置文件Homestead.yaml中有如下代码:

variables:
    - key: APP_ENV
      value: local

意思大概是设置了一些环境变量

可以看到设置了APP_ENV的值为local

没错,就是这个键值对

当修改local并且运行vagrant provision && vagrant reload重新加载 Homestead.yaml 配置并重启虚拟机后,在项目中打印env('APP_ENV'),值为修改后的新值

所以这个在上线后应该还是获取的.env文件中的值

5年前 评论
ruodee

琢磨了两天,APP_ENV被linux系统变量值覆盖。一句话说明很多问题。

5年前 评论
ruodee

file

5年前 评论

呵呵,这个坑我没踩到,因为我一开始就把多余的环境变量去掉了。。:smile:

5年前 评论

修改.env文件的配置后,执行一下: $ php artisan config:cache

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!