Laravel env函数的坑

在写一个接口的时候,需要从 config 配置文件里面读取配置, 默认的配置信息是在 .env 文件里面的。
我是直接从控制器里面 通过 env 函数来去取配置信息的。但是这里就有个坑了,因为 配置文件是可以进行缓存的,
然后我每次进行缓存,打开控制器就会报错了,因为读取不到配置的信息。然后去查了资料才发现问题!

fox0iVjdcZ.png

在框架核心启动类中 Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::boot ,第20行代码可以知道,
如果缓存了配置文件就会直接返回了,然后就不会从 env 文件加载配置了!

怎么解决问题呢,可以在配置文件写好配置参数,然后在 config/services.php 第三方服务读取配置参数。
在需要用到的地方 使用 config('services.xx.xxx') 函数读取配置,这样就可以正常缓存配置了!

Last modification:December 16th, 2019 at 08:59 am
如果觉得我的文章对你有用,请随意赞赏