呈现具有特定状态代码的模板

Mic*_*ser 10 php http-status-codes partial symfony

由于我已经读过如果响应代码不是206,Chrome浏览器无法循环播放HTML5视频,我想用206代码渲染我的模板.

然而,我没有找到任何地方如何在渲染模板时指定html代码......有没有人已经尝试过并成功了?

qoo*_*mao 6

您可以使用具有必要状态代码的renderResponse传递响应对象.

$response = new Response('', 206);

return $this->renderResponse(
// Or return $this->container->get('templating')
    'AcmeBundle:Video:show.html.twig',
    array('video' => video),
    $response
);
Run Code Online (Sandbox Code Playgroud)

如果您没有Response使用renderResponse 传入,则会自动生成一个.如果你传递一个,那么它的内容只是设置为渲染模板的内容(正如你在代码中看到的那样)


Mat*_*teo 5

在控制器中,您可以创建并返回包含内容和指定返回码的Response对象,例如:

return new Response(
    $this->renderView('AcmeDemoBundle:Default:video.html.twig', array(
            'param1'    => $param1,
            'param2'     => $param2,
        )),
        206  // return code
);
Run Code Online (Sandbox Code Playgroud)

希望这有帮助

  • 这确实在语法上有效.我可以在开发工具栏中看到响应状态确实是206但我仍然有"HTTP/1.0 200 OK Cache-Control:no-cache Date:Thu,05 Mar 2015 18:45:02 GMT"就在我的下面当我用chrome的工具检查源代码时,<body>元素...是否有任何发生率? (2认同)