通过 Laravel 更新 .env 值
Update .env value via Laravel
例如,如果我的 .env 是
APP_ENV=local
APP_URL=http://localhost:8888/
APP_DEBUG=true
FACEBOOK_APP_ID = ABC
我知道在 Laravel 中我们可以通过这样做来访问我们的 .env 文件
echo env('APP_ENV'); --> 'local'
echo env('APP_URL'); --> 'http://localhost:8888/'
但我想知道是否有办法以编程方式设置它
Ex. env('APP_ENV') == 'production';
试试这个
$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)
));
}
取自此处
您可以使用:
putenv("APP_ENV=production");
因为 env
只是 getenv
的一个方便包装器,可以进行一些类型转换。
注意:这不是永久性的,因为它会在下一个请求发生时被 .env
覆盖。
这可能会有所帮助。
function setEnv($name, $value)
{
$path = base_path('.env');
if (file_exists($path)) {
file_put_contents($path, str_replace(
$name . '=' . env($name), $name . '=' . $value, file_get_contents($path)
));
}
}
setEnv('APP_ENV','abc');
例如,如果我的 .env 是
APP_ENV=local
APP_URL=http://localhost:8888/
APP_DEBUG=true
FACEBOOK_APP_ID = ABC
我知道在 Laravel 中我们可以通过这样做来访问我们的 .env 文件
echo env('APP_ENV'); --> 'local'
echo env('APP_URL'); --> 'http://localhost:8888/'
但我想知道是否有办法以编程方式设置它
Ex. env('APP_ENV') == 'production';
试试这个
$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)
));
}
取自此处
您可以使用:
putenv("APP_ENV=production");
因为 env
只是 getenv
的一个方便包装器,可以进行一些类型转换。
注意:这不是永久性的,因为它会在下一个请求发生时被 .env
覆盖。
这可能会有所帮助。
function setEnv($name, $value)
{
$path = base_path('.env');
if (file_exists($path)) {
file_put_contents($path, str_replace(
$name . '=' . env($name), $name . '=' . $value, file_get_contents($path)
));
}
}
setEnv('APP_ENV','abc');