ZF2 - 如何正确设置标题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZF2 - 如何正确设置标题?相关的知识,希望对你有一定的参考价值。

我在ZF2中设置标题有问题。我的代码看起来像这样:

public function xmlAction()
{
    $headers = new endHttpHeaders();
    $headers->clearHeaders();
    $headers->addHeaderLine('Content-type', 'application/xml');

    echo $file; // xml file content
    exit;
}

但标题仍然是text / html。我可以设置正确的标题:

header("Content-type: application/xml");

但我想用Zend Framework做到这一点。为什么上面的代码不起作用?

答案

你正在做的是在ZF2 Response对象中设置标题,但这个响应以后从未使用过。您正在回显文件然后退出,因此ZF2无法发送响应(带有标题)。

您必须使用响应来发送文件,您可以这样做:

public function xmlAction()
{
    $response = $this->getResponse();
    $response->getHeaders()->addHeaderLine('Content-Type', 'application/xml');
    $response->setContent($file);

    return $response;
}

从控制器方法返回响应的想法称为“短路”,并且是explained in the manual

另一答案

试试 -

public function xmlAction()
{
    $this->getResponse()->getHeaders()->addHeaders(array('Content-type' => 'application/xml'));

    echo $file; // xml file content
    exit;
}

以上是关于ZF2 - 如何正确设置标题?的主要内容,如果未能解决你的问题,请参考以下文章

ZF2 Redis:如何设置密钥的到期时间

使用 Apache 虚拟主机在 ubuntu 13.10 上设置 zf2

如何正确地将多个片段添加到片段过渡?

ZF2维护页面

当我想在zf2客户端代码中使用“application / json”时,接受请求标头是“text / html,application / xhtml ...(etc)”

如何在 zf2 中获取最后插入的 id?