web-dev-qa-db-ja.com

特定のビューでyii-debug-toolbarを無効にするにはどうすればよいですか?

yii-debug-toolbar特定のビュー、特に部分的にレンダリングされたビューで?

これは可能ですか?

pS Yii-debug-toolbarは残念ながら以下のタグとして存在しません。

17
Lonely

これをレイアウトまたはビューファイルに配置します。

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

これにより、$this->endBody()があるレイアウトの最後で実行されるイベントからツールバーをレンダリングするコールバックが削除されます。

41
spikyjt

これらの2行を/config/web.phpから削除するかコメント化します。

$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';
9
Tanvir Rahman
public function beforeAction($action) {

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

もっと良い方法を見つけました。これをどこにでも置いてください:

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

そして、これは/ runtime/debugにファイルを作成しません

5
Zneiat

フロントエンドから削除したい場合、これが方法です:

  1. フロントエンド/config/main-local.phpに移動します
  2. 次の2行をコメント化します。

main-local.php

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

これにより、フロントエンドからデバッグバーが削除されます。

0
Umair Hamid