Symfony2:传递“format = xml”不会在XML中呈现响应

时间:2015-02-14 11:43:49

标签: symfony

传递默认值时的奇怪行为= {" _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);
}

虽然我通过了默认值= {" _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');

如何解决这个问题?

P.S。:symfony 2.3

1 个答案:

答案 0 :(得分:1)

_format定义内容类型,但您只将其设置为默认值。由于请求使用了contant-type html,因此默认无关紧要。您还必须将需求中的_format也设置为xml。