【问题标题】:How Can a User Edit a Config Value in Laravel?用户如何在 Laravel 中编辑配置值?
【发布时间】:2017-01-28 04:47:12
【问题描述】:

我在 Laravel 5.3 中创建了一个可邮寄的类,并在 config/mail.php 中设置了名称和返回电子邮件的全局变量。我希望管理员用户可以编辑这些值,而无需他们转到配置文件或编辑 .env。我该怎么做?

【问题讨论】:

  • 您可以将配置的默认值作为第二个参数。我不认为你可以编辑它
  • 您需要在每次执行时即时更改它们还是永久更改它们?
  • @AvikAghajanyan 理想情况下,它将是半永久性的,以便管理员可以更改它,并且它将应用于所有电子邮件,直到再次更改为止。

标签: laravel


【解决方案1】:

Laravel 中没有这样的功能,所以你需要使用其中一个包,例如 this one

【讨论】:

    【解决方案2】:

    你可以编写这样的辅助函数来编辑.env

    function saveConfiguration($values, $configFilename = '.env') {
            if (empty($values) || !is_array($values)) {
                return false;
            }
    
            $envFile = base_path($configFilename);
            if (!File::exists($envFile)) {
                $existingConfig = [];
            } else {
                $existingConfig = file($envFile);
            }
    
            $configs = [];
            foreach ($existingConfig as $config) {
                if (!empty(str_replace(' ', '', $config))) {
                    $config = str_replace([
                        "\r",
                        "\n"
                    ], ['', ''], $config);
                    $configParts = explode('=', $config, 2);
                    if (!empty($configParts[1])) {
                        if (!array_key_exists($configParts[0], $values)) {
                            $configs[] = $configParts[0].'='.$configParts[1];
                        }
                    }
                }
            }
    
            foreach ($values as $key => $value) {
                $value = str_replace('"', '\"', $value);
                if (strpos($values[$key], ' ') !== false) {
                    $configs[] = $key.'="'.$value.'"';
                } else {
                    $configs[] = $key.'='.$value;
                }
            }
    
            File::put($envFile, implode("\n", $configs));
    
            return true;
        }
    

    然后使用它保存在 .env 中,并配置您的 config/mail.php 以使用那里的凭据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 2012-05-10
      • 2014-04-29
      • 1970-01-01
      相关资源
      最近更新 更多