我想覆盖env数据
我像这样覆盖邮件服务
config(['mail.host' => $emails_data->host]);
config(['mail.username' => $emails_data->username]);
config(['mail.password' => $emails_data->password]);
(new MailServiceProvider(app()))->register();
但是,如果我为应用程序执行此功能,它将无法正常工作?
config(['app.debug' => true]);
(new AppServiceProvider (app()))->register();
如何在应用运行时覆盖env数据?
我试图将其添加到中间件
中class DebugBar
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
app('debugbar')->disable();
if ( Session::get('shop') == 'name' ) {
// register new config value
config(['app.debug' => true]);
(new AppServiceProvider (app()))->register();
//enable debuger
app('debugbar')->enable();
}
return $next($request);
}
}
答案 0 :(得分:0)
env()
或config()
助手无法修改环境变量。
您需要使用putenv()
PHP函数来覆盖环境变量,例如putenv("APP_DEBUG=false");
答案 1 :(得分:0)
在文件“app\Providers\AppServiceProvider.php”上添加下一个
if( env('APP_DEBUG') ) {
\Debugbar::enable();
}else{
\Debugbar::disable();
}