Использование стандартной компоновки с контроллером ошибок Zend Framework - PullRequest
0 голосов
/ 15 февраля 2012

Я хотел бы использовать макет, настроенный в /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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...