Удалить разметку DebugKit из представления

У меня есть шаблон *.ctp с некоторым HTML, предназначенным для преобразования в PDF с помощью Плагин CakePDF. На этапе разработки я установил уровень отладки 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?


person Álvaro González    schedule 13.04.2016    source источник


Ответы (2)


В конце концов я нашел решение для каждого случая. Вы можете отключить компонент в конце метода действия внутри контроллера (в любом месте до вызова $this->render()):

$this->Components->unload('DebugKit.Toolbar');
person Álvaro González    schedule 13.04.2016

Вы также можете попробовать отключить режим отладки для определенного контроллера 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');
    }
}

Это выгрузит компонент отладки в функцию индекса для конкретного контроллера.

person Akshay Sharma    schedule 13.04.2016
comment
Спасибо за подсказку. Но я все еще хочу видеть сообщения об ошибках и другую отладочную информацию. - person Álvaro González; 13.04.2016