如何在特定视图上禁用yii-debug-toolbar?

时间:2014-05-09 08:46:43

标签: php debugging yii yii-extensions

如何在特定视图上禁用yii-debug-toolbar,尤其是在部分渲染视图上?

这可能吗?

P.S。遗憾的是,Yii-debug-toolbar不会作为下面的标记存在。

8 个答案:

答案 0 :(得分:40)

将它放在您的布局或视图文件中:

if (class_exists('yii\debug\Module')) {
    $this->off(\yii\web\View::EVENT_END_BODY, [\yii\debug\Module::getInstance(), 'renderToolbar']);
}

这将删除从布局末尾运行的事件中呈现工具栏的回调,其中您有$this->endBody()

答案 1 :(得分:8)

只需从/config/web.php

删除或注释掉这两行
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';

答案 2 :(得分:6)

public function beforeAction($action) {

    if ( $action->controller->id=='elfinder' && Yii::$app->getModule('debug') )
        Yii::$app->getModule('debug')->instance->allowedIPs = [];
    return parent::beforeAction($action);
}

答案 3 :(得分:4)

我找到了更好的方法。把它放在任何地方:

Yii::$app->log->targets['debug'] = null;

这不会在/ runtime / debug

中生成文件

答案 4 :(得分:0)

如果你想从前端删除,那就是这样:

  1. 转到frontend / config / main-local.php
  2. 注释掉这两行:
  3. 主要-local.php

      $config['bootstrap'][] = 'debug';    
      $config['modules']['debug'] = 'yii\debug\Module';
    

    这将从前端删除调试栏。

答案 5 :(得分:-1)

config/web.php

中删除此内容
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';

答案 6 :(得分:-1)

$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';

注释上面的代码行。这对我有用。在前端和后端执行此操作以在网站的页脚处禁用该调试工具或模块。

答案 7 :(得分:-7)

如果您不想显示日志,可以使用jQuery隐藏yii-debug控制台

   $('#ydtb-toolbar').hide();

在您的观看次数上调用此代码段。