通过Laravel更新.env值

时间:2017-03-10 20:51:01

标签: php laravel laravel-5 environment-variables laravel-5.1

示例,如果我的 .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';

3 个答案:

答案 0 :(得分:2)

这可能有帮助。

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');

答案 1 :(得分:1)

试试这个

$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)
));
}

取自stack answer

答案 2 :(得分:0)

您可以使用:

putenv("APP_ENV=production");

因为env只是围绕getenv进行某种类型转换的便利包装器。

注意:这不是永久性的,因为当下一个请求发生时,.env会覆盖它。