Laravel
Laravel env函数的坑
在写一个接口的时候,需要从 config
配置文件里面读取配置, 默认的配置信息是在 .env
文件里面的。
我是直接从控制器里面 通过 env
函数来去取配置信息的。但是这里就有个坑了,因为 配置文件是可以进行缓存的,
然后我每次进行缓存,打开控制器就会报错了,因为读取不到配置的信息。然后去查了资料才发现问题!
在框架核心启动类中
IlluminateFoundationBootstrapLoadEnvironmentVariables::boot
,第20行代码可以知道, 如果缓存了配置文件就会直接返回了,然后就不会从env
文件加载配置了!
怎么解决问题呢,可以在配置文件写好配置参数,然后在 config/services.php
第三方服务读取配置参数。
在需要用到的地方 使用 config('services.xx.xxx')
函数读取配置,这样就可以正常缓存配置了!
本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: Dec 16, 2019 at 08:59 am