Response 响应类
⚠️ Response 构造函数已私有,无法通过 new 方式实例化,仅通过 控制器 的
getResponse
方法获得
// in controller-action
$response = $this->getResponse();
$response->gotoUrl('user/login');
Response::gotoUrl
页面路径重定向
void Response::gotoUrl ( string $url [, int httpCode = 302] )
-
返回值
无 -
范例
$response->gotoUrl('user/login'); // 跳转到站内 user/login
// 跳转到站外
Response::reload
页面路径重定向到当前页面 (302 GET 请求)
void Response::reload ( void )
-
参数
无 -
返回值
无 -
范例
$response->reload(); // 重新刷新当前页面
Response::gotoRoute
重新分发路由
bool Response::gotoRoute ( array $route ) throws E404Exception
该方法不会产生 HTTP 重定向
-
参数
$route - 路由数组,若无设置folder
则使用当前控制器folder
;若无设置controller
则使用当前控制器;若无设置action
则使用默认控制器方法;arguments
默认为空数组 -
返回值
分发成功或失败 -
异常
抛出 E404Exception 异常 -
范例
$response->gotoRoute([
'action' => 'newaction',
'arguments' => [1, 2, 3],
]);
Response::setCookie
设置 $_COOKIE
bool Response::setCookie ( string $key [, string $value = null [, int $expires = 0]] )
-
参数
$key cookie 键名
$value cookie 值,默认为null
则删除该 cookie
$expires 有效期,默认为 0 表示浏览器会话,若 >0 则表示该 cookie 从当前时间后多少秒有效 -
返回值
设置成功或失败 -
范例
$response->setCookie('foo', 'bar', 100); // 设置 cookie "foo" 的值为 "bar",100 秒过期
Response::getBody
获取当前输出缓冲区的内容
string Response::getBody ( void )
-
参数
无 -
返回值
内容字符串 -
范例
$output = $response->getBody();
Response::setBody
设置输出缓冲区的内容
bool Response::setBody ( string $body )
-
参数
$body - 新的输出内容 -
返回值
设置成功或失败 -
范例
$output = strtr($response->getBody(), ['foo' => 'bar']); // 把原 $body 内容中 "foo" 替换成 "bar"
$response->setBody($output);