是否可以确保只有一条路线仅以 html 格式提供?
在配置中,我设置了 html 和 json,但只有一条路线我希望不使用 json。
你可以做?
是否可以确保只有一条路线仅以 html 格式提供?
在配置中,我设置了 html 和 json,但只有一条路线我希望不使用 json。
你可以做?
我没有尝试过这个,因为我在手机上,但你有没有看过尝试这样的事情只是为了那一条路线:
my-awesome-route:
pattern: /hello/{fist_name}/{last_name}.{_format}
defaults: { _controller: AcmeHelloBundle:Default:index, _format:html}
requirements:
_format: html
您可以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);
}
}