Я хотел бы использовать макет, настроенный в /layouts/scripts/error.phtml, при отображении ошибки (включая файлы верхнего и нижнего колонтитулов сайта и т. Д.). Я использую стандартный Zend ErrorController, созданный Zend Tool.
Мой файл макета error.phtml:
<?= $this->render('header.phtml'); ?>
<?= $this->layout()->content ?>
<?= $this->render('footer.phtml');?>
И у меня есть в errorAction () включить макет
$this->_helper->layout()->setLayout('error');
Однако, когда я использую раскладку, Zend отвечает
Fatal error: Uncaught exception 'Zend_Controller_Response_Exception' with message
'Cannot send headers; headers already sent in , line 0'
Если я удаляю $ this-> getResponse () -> setHttpResponseCode (404) из моего контроллера ошибок, то Zend отображает страницу с ошибкой, но без сообщения 404 в заголовке. В качестве альтернативы, если я удаляю все выходные данные перед моим $ this-> layout () -> content, тогда все работает.
Я могу решить эту проблему, установив заголовок 404 в начале моего файла макета error.phtml, но это кажется чем-то большим. Есть ли способ заставить макет работать с кодом setHttpResponse в контроллере ошибок?
Я использую ZF 1.11.