从视图中删除DebugKit标记

时间:2016-04-13 09:20:49

标签: cakephp cakephp-2.5 cakephp-debug-kit

我有一个带有一些HTML的* .ctp模板,目的是使用CakePDF插件将其转换为PDF。在开发阶段,我将CakePHP调试级别设置为2,这会导致所有DebugKig内容显示在渲染视图中:

<link rel="stylesheet" type="text/css" href="/debug_kit/css/debug_toolbar.css" />
<script type="text/javascript">
//<![CDATA[
window.DEBUGKIT_JQUERY_URL = "/debug_kit/js/jquery.js";
//]]>
</script><script type="text/javascript" src="/debug_kit/js/js_debug_toolbar.js"></script>
<div id="debug-kit-toolbar">[...]</div>

我不需要它,大多数PDF引擎都会疯狂。有没有办法在这个特定视图或所有PDF模板中摆脱它?

2 个答案:

答案 0 :(得分:1)

我最终找到了一个案例解决方案。您可以在控制器内部的操作方法结束时禁用组件(在$this->render()被调用之前的任何位置):

$this->Components->unload('DebugKit.Toolbar');

答案 1 :(得分:1)

您还可以尝试为特定的pdf控制器调试模式,例如

 public function beforeFilter() { 
    parent::beforeFilter();
    Configure::write('debug', 0);
 }

你也可以为特定的控制器或动作卸载dubug组件试试这个

public function beforeFilter() {
    parent::beforeFilter();
    if(in_array($this->action, array('index'))) {
        $this->Components->unload('DebugKit.Toolbar');
    }
}

这将在特定控制器的索引函数中卸载调试组件