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


How do I access status code and body inside my default template?

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

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

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

您可以这样做:

Controller中添加一个方法来获取SS_HTTPResponse数据:

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

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

$Response.StatusCode$Response.Body

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

关于你正在努力实现的目标,没有足够的信息。

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