我在 Laravel 5 时间表中设置了一些命令。输出存储在文件中并通过电子邮件发送给我。
由于该项目有多个“副本”,我想使用环境名称来区分电子邮件来自哪个副本。
我尝试使用app()->environment()
在时间表描述中 - 它抛出一个错误:
Fatal error: Uncaught exception 'ReflectionException' with message 'Class env does not exist' in ...
我也尝试过getenv('APP_ENV')
- 这不会导致任何错误,但我得到一个空白的环境名称。
App::environment()
也没有用。
如果我在常规请求(例如控制器操作或视图)中使用它们,所有这些都可以正常工作。
有没有办法在运行计划时确定当前环境?
谢谢
我找到了解决方案。
在我的 App\Console\Kernel 计划方法中,在设置应用程序所有计划之前,我添加了一行:
Dotenv::required('APP_ENV');
请记住,您要么必须use Dotenv;
或者由于命名空间的原因在上面的行中添加 \。
这样系统“确保”APP_ENV 已加载并且app()->environment()
正在返回正确的环境名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)