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

Lon*_*ely 16 php debugging yii yii-extensions

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

这可能吗?

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

spi*_*yjt 41

把它放在你的布局或视图文件中:

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

这将删除回显,该回调将在布局结束时运行的事件中呈现工具栏$this->endBody().


小智 8

只需删除或注释掉这两行 /config/web.php

$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';
Run Code Online (Sandbox Code Playgroud)

  • 这不回答这个问题.OP想要知道如何仅在特定视图中禁用调试工具栏,同时在其他视图中保持启用它.在此答案后完全禁用它. (5认同)

小智 6

public function beforeAction($action) {

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


小智 6

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

Yii::$app->log->targets['debug'] = null;
Run Code Online (Sandbox Code Playgroud)

这不会在 /runtime/debug 中生成文件