1

是否可以确保只有一条路线仅以 html 格式提供?

在配置中,我设置了 html 和 json,但只有一条路线我希望不使用 json。

你可以做?

4

2 回答 2

2

我没有尝试过这个,因为我在手机上,但你有没有看过尝试这样的事情只是为了那一条路线:

my-awesome-route:
  pattern:  /hello/{fist_name}/{last_name}.{_format}
  defaults: { _controller: AcmeHelloBundle:Default:index, _format:html}
requirements:
  _format: html
于 2013-08-28T02:36:13.773 回答
2

您可以setFormat('html')在控制器操作中调用视图。

例如只渲染和返回一个模板:

class AcmeController extends FOSRestController
{
    public function getAction()
    {
        // ...
        $templateData = [
            'some'  => $vars,
        ];

        $view = $this->view(null, 200)
            ->setFormat('html')
            ->setTemplate("AcmeBundle:Tpl:some.html.twig")
            ->setTemplateData($templateData);

        return $this->handleView($view);
    }
}

但随后视图处理程序将始终尝试呈现模板。如果你不需要渲染,因为你已经有了你的 html,只需返回一个带有正确标题的新 symfony 响应:

class AcmeController extends FOSRestController
{
    public function getAction()
    {
        // you already have $html

        $headers = ['Content-Type' => 'text/html; charset=UTF-8'];

        return \Symfony\Component\HttpFoundation\Response::create($html, 200, $headers);
    }
}
于 2015-10-09T11:54:37.167 回答