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);