【发布时间】:2015-02-14 11:43:49
【问题描述】:
将 defaults={"_format" = "xml"} 传递给控制器的奇怪行为(之前似乎有效):
/**
* @Route("/orderxml/{orderguid}", name="_show_order_xml", defaults={"_format" = "xml"})
*/
public function showOrderXML($orderguid)
{
....
$xmloutput = $this->container->get('templating')
->render($templateName, $tpl_data);
$response = new Response($xmloutput);
}
虽然我通过了 defaults={"_format" = "xml"},但仍会收到 content-type=text/html 的响应。
尝试调试请求 - 它带有空的 Content-Type 标头。 Request的属性确实包含_format=xml,但也包含media-type="text/html",我不熟悉。如文档中所述,_format 确定 Request 和 Response 对象的内容类型。
目前我唯一能做的就是 $response->headers->set('Content-Type', 'text/xml');
如何解决这个问题?
PS:symfony 2.3
【问题讨论】:
-
您在哪里读到 _format 适用于响应?很确定它只适用于请求。手动设置标题是最简单的选择。或者,您可以使用 JsonResponse 作为指南创建一个 XmlResponse 对象。
标签: symfony