Symfony Controller - Как вернуть XML-ответ?
Я хочу вернуться в свой RandomController::indexAction()
ответ XML:
return new Response($this->renderView(
'AcmeRandomBundle:Random:index.xml.twig',
array(
'randomParameter' => $randomParameter
)
));
где index.xml.twig
выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<randomTag>
{{ randomParameter }}
</randomTag>
Когда я хочу открыть это действие в firefox, я попал в firebug:
<html>
<body>
<randomTag>
randomValue
</randomTag>
</body>
</html>
Как вернуть правильный ответ XML?
Ответы
Ответ 1
Попробуйте добавить правильный заголовок объекта ответа, например:
$response->headers->set('Content-Type', 'xml');
В противном случае добавьте правильную аннотацию (defaults
) в свой метод контроллера, например, в этом примере:
/**
* @Route("/hello/{name}", defaults={"_format"="xml"}, name="_demo_hello")
* @Template()
*/
public function helloAction($name)
{
return array('name' => $name);
}
Посмотрите руководство для дальнейшего объяснения