每次改 .env 都得通过修改代码来改吗?.env 文件能不能通过在后台配置呢?
其实是很简单就可以实现的,把以下函数加入到你的项目中
00x0代码
function modifyEnv(array $data)
{
$envPath = base_path() . DIRECTORY_SEPARATOR . '.env';
$contentArray = collect(file($envPath, FILE_IGNORE_NEW_LINES));
$contentArray->transform(function ($item) use ($data){
foreach ($data as $key => $value){
if(str_contains($item, $key)){
return $key . '=' . $value;
}
}
return $item;
});
$content = implode($contentArray->toArray(), "\n");
\File::put($envPath, $content);
}
00x1 使用
// 你可以更新你想要的任何值 key => value
$data = [
'APP_ENV' => 'your_environment',
'APP_KEY' => 'your_key',
'APP_DEBUG' => 'trueOrFalse',
'DB_DATABASE' => 'test',
'DB_USERNAME' => 'test',
'DB_PASSWORD' => 'test',
'DB_HOST' => 'localhost',
'CACHE_DRIVER' => 'file',
'SESSION_DRIVER' => 'file',
];
// 或者
$data = [
'DB_HOST' => '127.0.0.1',
];
// 使用函数更新
modifyEnv($data);