【发布时间】:2019-06-17 19:54:29
【问题描述】:
有什么方法可以改变我在 laravel 控制器中的 .env 文件值?
我找到了this answer,但它返回了
未定义的属性: App\Http\Controllers\Admin\PerformanceController::$laravel
代码
$path = base_path('.env');
$key = false;
if (file_exists($path)) {
file_put_contents($path, str_replace(
'APP_KEY='.$this->laravel['config']['app.key'], 'APP_DEBUG='.$key, file_get_contents($path)
));
}
我希望在我的管理面板中有选项来更改调试模式的真假,就像我们在控制器中使用工匠命令一样,例如 Artisan::call('down') 或 Artisan::call('up') 之类的东西。
更新
现在我有了这个代码
$path = base_path('.env');
$key = 'true';
if (file_exists($path)) {
file_put_contents($path, str_replace(
'APP_DEBUG='.config('app.debug'), 'APP_DEBUG='.$key, file_get_contents($path)
));
}
此代码确实有效,但问题是它不会删除旧值。
之前
APP_DEBUG=false
之后
APP_DEBUG=truefalse
or
APP_DEBUG=falsefalse
有什么想法吗?
【问题讨论】:
-
我认为这个链接可能会有所帮助:laravel-tricks.com/tricks/change-the-env-dynamically
-
@HirenGohel 我不明白。数据来自哪里?我们在哪里设定值?如何更新?太不完整了。
-
@mafortis: 看那里,
something()函数包含$env_update数组,您想将数据更新到 env 文件中。并调用其他名为changeEnv的函数来更新数据。 -
@mafortis:作者也为此创建了一个包,您可以在这里查看:github.com/Brotzka/laravel-dotenv-editor
标签: php laravel environment-variables