动态隐藏 Laravel barryvdh 调试栏

Sai*_*akR 2 laravel laravel-5 laravel-5.4

我无法动态隐藏Laravel Debugbar,即在运行时。我从父控制器类构造函数中尝试了以下内容:

<?php

namespace App\Http\Controllers;
class Controller extends BaseController {

    use AuthorizesRequests,
        DispatchesJobs,
        ValidatesRequests;
    public $foo = 'null';

    public function __construct() {
        \Debugbar::disable();
      // and also
      config(['debugbar.enabled' => false]);
.... 
Run Code Online (Sandbox Code Playgroud)

以上所有尝试都失败了。我想提一下,控制器是所有其他控制器类的父控制器。

唯一的工作方式不是动态方式,我必须手动更改配置。我不知道为什么覆盖配置不能像文档说明的那样工作?

who*_*boy 6

没有看到你所有的代码,你的应该可以工作。以下是我如何将我的配置为在本地环境中工作并根据特定请求禁用它。

应用服务提供者

use Barryvdh\Debugbar\ServiceProvider as DebugbarServiceProvider;

...

public function register()
{
  if ($this->app->environment('local')) {
    $this->app->register(DebugbarServiceProvider::class);
  }
}
Run Code Online (Sandbox Code Playgroud)

我想禁用的地方。

use Barryvdh\Debugbar\Facade as Debugbar;

...

if (App::environment('local')) {
  Debugbar::disable();
}
Run Code Online (Sandbox Code Playgroud)

每条评论更新

为什么要像这样在路由文件中放一些东西。

use Barryvdh\Debugbar\Facade as Debugbar;

...

Route::group(array('domain' => 'admin.example.com'), function()
{
   Debugbar::disable();
});
Run Code Online (Sandbox Code Playgroud)