在管理员的生产中显示调试

时间:2018-03-09 23:56:02

标签: php laravel laravel-5.5

我想覆盖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);
    }
}

2 个答案:

答案 0 :(得分:0)

env()config()助手无法修改环境变量。

您需要使用putenv() PHP函数来覆盖环境变量,例如putenv("APP_DEBUG=false");

http://php.net/manual/en/function.putenv.php

答案 1 :(得分:0)

在文件“app\Providers\AppServiceProvider.php”上添加下一个

    if( env('APP_DEBUG') ) {
    \Debugbar::enable();
}else{
    \Debugbar::disable();
}