Как перезаписать переменные файла .env в laravelPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как перезаписать переменные файла .env в laravel

Сообщение Anonymous »

Я создаю пользовательскую cms, я хочу, чтобы пользователи с правами администратора могли изменять некоторые переменные из графического интерфейса (настройки администратора), например переменные почты. Таким образом, они могут легко изменить некоторые значения в файле среды, используя предоставленную форму обновления.
Я создал специальную функцию в созданном мной вспомогательном файле и добавил к ней следующий код

Код: Выделить всё

function changeEnv($key, $value)
{
$path = base_path('.env');

if (file_exists($path)) {

file_put_contents($path, str_replace(
$key . '=' . env($key), $key . '=' . $value, file_get_contents($path)
));
}
}
Тогда в моем контроллере есть следующий код

Код: Выделить всё

public function updateEmail(Request $request)
{
foreach ($request->types as $key => $type) {

// echo $type . "=" . $request[$type];
changeEnv($type, $request[$type]);
}
}
Теперь, когда я нажимаю кнопку обновления, обновляются только viriables с NULL, а не полностью, я получаю что-то вроде MAIL_PORT=465null После этого они больше не будут обновляться, если я не изменил его вручную на ноль.
Мои переменные env перед обновлением выглядят так, как показано ниже:

Код: Выделить всё

MAIL_MAILER=mail
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
И после обновления я получу:

Код: Выделить всё

MAIL_MAILER=mail
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=sslnull
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
Я буду признателен за любую помощь в том, как заставить это работать идеально.

Подробнее здесь: https://stackoverflow.com/questions/750 ... in-laravel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»