如何访问默认模板中的状态代码和正文?

时间:2016-03-25 20:56:31

标签: php content-management-system silverstripe

如何在控制器的操作模板中显示HTTPResponse状态代码和正文?当我试图设置

$this->response->setStatusCode(400);
$this->response->setBody('invalid 2');

并返回$ this仅显示我的操作模板上的内容?如何访问默认模板中的状态代码和正文?

2 个答案:

答案 0 :(得分:1)

你可以这样做:

Controller中添加方法以获取SS_HTTPResponse数据:

public function Response()
{
  $response = new ArrayData(array(
    "StatusCode" => $this->getResponse()->getStatusCode(),
    "Body" => $this->getResponse()->getBody()
  ));

  return $response;
}

然后在您的模板中,您可以使用:

$Response.StatusCode$Response.Body

答案 1 :(得分:-1)

模板用于形成响应主体。在您的情况下,您将响应正文设置为字符串。

没有足够的信息说明你想要实现的目标。

如果要为特定代码创建漂亮的错误页面,则应使用ErrorPage类型创建特殊页面,并在控制器中使用$this->httpError(400);ErrorPage包含一个字段ErrorCode,用于按代码查找现有错误页面,可以在模板中使用,但通常会将错误代码和消息直接放入Content。< / p>