Laravel中如何全局获取环境变量?APP_URL取值返回null问题
问题解决方法
核心原因
Laravel 中env()函数仅在配置加载阶段有效,当执行过config:cache命令(生产环境常用)后,业务代码(比如模型、控制器)里直接调用env()会返回null。而配置文件中已经将APP_URL映射到了app.url配置项,正确的做法是通过config()函数读取。
修复步骤
- 替换模型中的代码
将直接调用env()的代码改成读取配置项:
class Attachment extends Model { public function getUrlAttribute() { return config('app.url'); } }
- 处理配置缓存(若已生成)
- 开发环境:执行命令清除配置缓存
php artisan config:clear
- 生产环境:重新生成配置缓存
php artisan config:cache
补充说明
所有环境变量都应该先配置到config/目录下的对应配置文件中,再通过config()函数读取,这是Laravel的最佳实践,避免因配置缓存导致的变量读取失败问题。
内容的提问来源于stack exchange,提问作者Ricky Anwar
相关产品推荐
相关产品推荐

