似乎在Middleware Kernel constructor()
事件中我可以访问env('')
帮助器。在.env文件中设置的所有变量都返回null。
为什么会这样?
我实际上想在我的.env中设置一个中间件读取的配置,以便促进本地开发行为。
这就是我在Http \ Kernel
中所做的public function __construct(Application $app, Router $router)
{
if (env('check_env_key', false)) {
}
parent::__construct($app, $router);
}
答案 0 :(得分:0)
我在Laravel 5.2应用程序中有同样的事情。我在xdebug的帮助下潜入了代码。
回答你的问题'为什么会发生这种情况'?
如果查看HttpKernel构造函数(它是内核的父级),您会看到尚未加载env值。请参阅xdebug中的$ _ENV容器或转储它。
因此收集你的值(getenv)的php函数将返回false。而且,由于这个错误,Laravel env帮助器将返回默认值。
路线 在routes文件中,$ _ENV容器填充了所有的env值,因此返回了预期的值。
这是一个时间问题。内核中尚未提供预期的行为。这就是为什么......: - )
我认为Laravel在引导应用程序时加载env值,而不是之前。