Laravel项目中env获取不到数据怎么办,如何解决
Admin 2022-06-14 群英技术资讯 1582 次浏览
这篇文章主要介绍了Laravel项目中env获取不到数据怎么办,如何解决相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel项目中env获取不到数据怎么办,如何解决文章都会有所收获,下面我们一起来看看吧。在laravel中,可用“php artisan config:clear”语句清除config缓存,解决env获取不到数据的问题;该问题产生的原因是缓存配置文件通过env函数读取环境变量,可能会导致该读取不到环境变量,所以返回null。

本文操作环境:Windows10系统、Laravel5.4版、Dell G3电脑。
解决方案:
清除config缓存命令
php artisan config:clear
原因
在 Laravel 中,如果执行 php aritisan config:cache 命令,Laravel 将会把 app/config 目录下的所有配置文件“编译”整合成一个缓存配置文件到 bootstrap/cache/config.php,每个配置文件都可以通过 env 函数读取环境变量,这里是可以读取的。但是一旦有了这个缓存配置文件,在其他地方使用 env 函数是读取不到环境变量的,所以返回 null.
让我们看看这段代码,Illuminate/Foundation/Bootstrap/DetectEnvironment.php line 18:
public function bootstrap(Application $app){
if(!$app->configurationIsCached()){
$this->checkForSpecificEnvironmentFile($app);
try{
(newDotenv($app->environmentPath(),$app->environmentFile()))->load();
}catch(InvalidPathException$e){
}
}
}这个方法在框架启动后就会运行,这段代码说明了如果存在缓存配置文件,就不会去设置环境变量了,配置都读缓存配置文件,而不会再读环境变量了。
因此,在配置文件即 app/config 目录下的其他地方,读取配置不要使用 env 函数去读环境变量,这样你一旦执行 php artisan config:cache 之后,env 函数就不起作用了。所有要用到的环境变量,在 app/config 目录的配置文件中通过 env 读取,其他地方要用到环境变量的都统一读配置文件而不是使用 env 函数读取。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php中n阶乘的实现方法:1、普通递归实现,根据递归的通用公式fact(n) = n * fact(n-1)很容易写出阶乘的计算代码。2、普通循环实现,有些动态规划的味道,但由于中间态变量使用频率低,不需要额外存储空间。
今天小编就为大家分享一篇laravel 实现划分admin和home 模块分组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章给大家分享的是有关laravel框架查询作用域的内容。主要介绍定义查询作用域的方法和动态作用域使用,感兴趣的朋友们可以了解看看,接下里就一起跟随小编看看吧
本文实例讲述了PHP与Web页面交互操作。分享给大家供大家参考,具体如下:
今天小编就为大家分享一篇关于PDO::errorCode讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008