当前位置: 首页 > 面试题库 >

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

松国兴
2023-03-14
问题内容

我想创建一个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文件不是最好的主意。对于大多数自定义设置,我建议将它们存储在数据库中,但是,如果设置本身是连接数据库所必需的,那么这显然是一个问题。



 类似资料:
  • 问题内容: 我想要一个log4j配置,这样日志文件名应该像$ {System-name} log.log。也就是说,如果该应用程序在任何系统上启动,则无需更改配置文件或代码。它应该生成提到的日志文件名。谢谢。 问题答案: 我这样做: 1)通过以下方式初始化记录器: 2)在log4j.xml中我使用变量:

  • 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于动态内容 通过对提供内容的服务器行为进行编辑,可以更改页面上的动态内容。例如,您可以编辑记录集服务器行为,以便向页面提供更多的记录。 在“服务器行为”面板中列出了页面上的动态内容。例如,如果向页面中添加了某

  • 问题内容: 我正在尝试从方法外部更改菜单项的标题。 我已经做了以下工作; 但是,我希望能够在此方法之外修改特定菜单项的标题。 问题答案: 正如JxDarkAngel所建议的那样,可以从你的中的任何地方调用它, 然后覆盖:

  • 我在用Mybatis的春靴。我在一个映射器XML文件中有以下查询。 实际上,“anotherdatabase”在我的查询中是硬编码的,因为我不想只为这个查询添加另一个数据源。但是,我如何动态地创建这个“另一个数据库”名称(可能在某些属性文件中配置它),因为它可能在不同的部署环境中发生变化?

  • 问题内容: 我的问题是:如何更改标签中的文本?标签在布局内,但似乎不起作用-也许我做对了。 这是我的代码: 这是Main Windows GUI,一个Qt-Designer提供: 这是接口的逻辑: 我想在用户登录到程序后更改标签。我要更改的标签是,我想将其替换为,它对应于QLineEdits之一。 更新 我进行了您告诉我要做的所有更改,该项目看起来看起来井井有条,但是现在我得到了以下输出: Typ

  • 问题内容: 简而言之,有一个简单的java swing应用程序,其中包含JFrame和其中的某些组件。组件之一是一个JPanel,可以根据用户操作将其替换为另一个JPanel。 那么,做这种事情的正确方法是什么?我试过了 但这行不通。你有什么建议? 问题答案: 你的用例对于CardLayout来说似乎很完美。 在卡片布局中,你可以在同一位置添加多个面板,但是一次只能显示或隐藏一个面板。