Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP更新.env值_Php_Laravel_Laravel 5_Environment Variables_Laravel 5.8 - Fatal编程技术网

使用PHP更新.env值

使用PHP更新.env值,php,laravel,laravel-5,environment-variables,laravel-5.8,Php,Laravel,Laravel 5,Environment Variables,Laravel 5.8,我知道你们中的一些人可能认为这会导致安全问题 如果您需要更改环境变量,我建议您只需更改.env文件并重新缓存配置(如果在生产环境中)。您当前的实现可能对安全问题非常敏感 如果确实希望在运行时以编程方式更改环境变量,则始终可以使用config()helper方法 config(['mailing. reporting' => false]); 这也记录在了 编辑 所以我认为您正在实现的env变量可能有点不正确。环境变量本身不应在应用程序的运行时更改。调用env()函数的唯一位置是在配置文件

我知道你们中的一些人可能认为这会导致安全问题 如果您需要更改环境变量,我建议您只需更改
.env
文件并重新缓存配置(如果在生产环境中)。您当前的实现可能对安全问题非常敏感

如果确实希望在运行时以编程方式更改环境变量,则始终可以使用
config()
helper方法

config(['mailing. reporting' => false]);
这也记录在了

编辑 所以我认为您正在实现的env变量可能有点不正确。环境变量本身不应在应用程序的运行时更改。调用
env()
函数的唯一位置是在配置文件中(可在
config
目录中找到)。因此,您需要在
config/mailing.php
config文件中创建一个新密钥

'reporting' => env('MAIL_REPORT', false),
现在,无论何时需要将此变量设置为true,都可以更改
.env
文件或使用第一个给定示例(
config(['mailing.reporting'=>false]);


请阅读。

中的详细信息。有两个嵌套函数定义是否正常?此外,在Laravel(和Symfony)中,读取.env并将变量设置为环境变量,但调用
setEnv()
不会更新文件。您可能需要将文件解析为文本或使用一个库来解析。好的,让我拉出函数并重试。为什么要以编程方式更新
.env
文件?这真是糟糕的做法!我只想更新特定的标志,因为有时候,我想看到报告,有时候,我不想。如果我有办法做到这一点,我只需要连接一条路径来触发该功能——每当我想通过电子邮件查看报告时,通过iPhone Apple快捷方式即可。@Jerodev我只需要2个标志就可以做到这一点。我将在该功能中进行检查。我不会在一百万年内打开这条通往世界的道路,但这是我的下一步。为什么
邮寄.report
?我的标志拼写如下
MAIL\u REPORT
这只是一个关于配置的猜测。您在哪里使用
MAIL\u报告
env变量?我想在你的一个配置文件中?我已经试过了:,我仍然得到了正确的答案。我应该看到它被更新为
false
我的答案将完全满足您的需要。但是,您需要改变@kyo的思维方式。正如Dees所提到的,更改.env是个坏主意。如果您需要类似的行为,请更改mail.php,正如他所提到的,这是最好的解决方案。在stackoverflow中,您应该给出准确的答案,您想要的准确答案是错误的,他给出的答案解决了问题。