我在Laravel 5.3中创建了一个可邮寄的类,并在config / mail.php中设置名称的全局变量并返回电子邮件。我想让管理员用户可以编辑这些值,而无需他们转到配置文件或编辑.env。我该怎么做?
答案 0 :(得分:0)
Laravel中没有此类功能,因此您需要使用其中一个软件包,例如this one
答案 1 :(得分:0)
您可以编写这样的帮助函数来编辑.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来使用那里的凭证