我想在显示错误时使用/layouts/scripts/error.phtml中设置的布局(这包括站点范围的页眉和页脚文件等)。我正在使用Zend Tool创建的标准Zend ErrorController。
我的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-&gt; getResponse() - &gt; setHttpResponseCode(404),则Zend会显示错误页面,但标题中没有404消息。或者,如果我在$ this-&gt; layout() - &gt;内容之前删除所有输出,那么一切正常。
我可以通过在error.phtml布局文件的开头硬连线404标头来解决这个问题,但它似乎有点像kludge。有没有办法让我可以使用错误控制器中的setHttpResponse代码进行布局?
我正在使用ZF 1.11。