如何在Laravel中动态更改.env文件中的变量?

我想创建一个Laravel Web应用程序,允许管理员用户使用Web后端系统更改.env文件中的某些变量(例如数据库凭据)。但是,如何保存更改?

回答:

没有内置的方法可以做到这一点。如果您确实想更改.env文件的内容,则必须结合使用PHP的文件写入方法和某些字符串替换。为了获得一些启发,您应该看一下key:generate命令:KeyGenerateCommand.php:

$path = base_path('.env');

if (file_exists($path)) {

file_put_contents($path, str_replace(

'APP_KEY='.$this->laravel['config']['app.key'], 'APP_KEY='.$key, file_get_contents($path)

));

}

构建文件路径并检查是否存在后,该命令将简单替换APP_KEY=[current app key]APP_KEY=[new app

key]。您应该能够使用其他变量进行相同的字符串替换。

最后但并非最不重要的一点是,我只是想说让用户更改.env文件不是最好的主意。对于大多数自定义设置,我建议将它们存储在数据库中,但是,如果设置本身是连接数据库所必需的,那么这显然是一个问题。

以上是 如何在Laravel中动态更改.env文件中的变量? 的全部内容, 来源链接: utcz.com/qa/424484.html

回到顶部