Response 响应类
⚠️ Response 构造函数已私有,无法通过 new 方式实例化,仅通过 控制器 的
getResponse
方法获得
// in controller-action
$response = $this->getResponse();
$response->gotoUrl('user/login');
Response::gotoUrl
页面路径重定向
void Response::gotoUrl ( string $url [, int httpCode = 302] )
参数
$url - 重定向的路径,如果是站内跳转,只需要传入目标 Uri (不需要 baseUri)
$httpCode - 重定向的 HTTP 状态码,必须为3xx
,通常为301
或302
返回值
无范例
$response->gotoUrl('user/login'); // 跳转到站内 user/login
$response->gotoUrl('https://www.baidu.com'); // 跳转到站外
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);