yii2的請求(request)、響應與跳轉(response)、緩存(session)經常使用操做

1、yii2 request操做
Yii::$app->request->get();//等價於:$_GET;
Yii::$app->request->post();//等價於:$_POST;
Yii::$app->request->get('id'); //等價於:isset($_GET['id']) ? $_GET['id'] : null;
Yii::$app->request->get('id’,1); //等價於:isset($_GET['id']) ? $_GET['id'] : 1;
// 取得請求中的全部參數
Yii::$app->request->bodyParams;
//// 取得請求中的參數 "id"
Yii::$app->request->getBodyParam('id'); 
//判斷是否一個 AJAX 請求
Yii::$app->request->isAjax
//判斷是否一個 GET 請求
Yii::$app->request->isGet
//判斷是否一個 POST 請求
Yii::$app->request->isPost
//判斷是否一個 PUT 請求
Yii::$app->request->isPutweb

 


// 返回 Accept header 值,其中Yii::$app->request->headers是一個 yii\web\HeaderCollection 對象
$accept = Yii::$app->request->headers->get('Accept');
// 判斷是否頭部是否有User-Agent 頭
Yii::$app->request->has('User-Agent’);json


獲取客戶端的host name
Yii::$app->request->userHost;
獲取客戶端的IP地址
Yii::$app->request->userIP;數組

 


2、yii2 response操做
////==響應頭部:Yii::$app->response->headers;
// 增長一個 Pragma 頭,已存在的Pragma 頭不會被覆蓋。
Yii::$app->response->headers->add('Pragma', 'no-cache');瀏覽器


// 設置一個Pragma 頭. 任何已存在的Pragma 頭都會被丟棄
Yii::$app->response->headers->set('Pragma', 'no-cache');yii2


// 刪除Pragma 頭並返回刪除的Pragma 頭的值到數組
Yii::$app->response->headers->remove('Pragma');session


////==響應主體:Yii::$app->response->content;
//設置相應主體的內容
Yii::$app->response->content = 'hello world!';app


//在發送響應給終端用戶以前須要格式化
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
Yii::$app->response->data = ['message' => 'hello world'];yii

 


由於響應格式默認爲HTML, 只須要在操做方法中返回一個字符串, 
若是想使用其餘響應格式,應在返回數據前先設置格式, 例如返回json串:
public function actionInfo()
{
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    return [
        'message' => 'hello world',
        'code' => 100,
    ];
}post

 


//瀏覽器跳轉
return $this->redirect('http://example.com/new', 301);
//可直接調用redirect()再調用send()方法來確保沒有其餘內容追加到響應中。
return \Yii::$app->response->redirect('http://example.com/new', 301)->send();
//發送文件提供在瀏覽器上下載
return \Yii::$app->response->sendFile('path/to/file.txt');
//發送文件提供在瀏覽器上下載,並用send()方法確保沒有其餘內容追加到響應中。
return \Yii::$app->response->sendFile('path/to/file.txt')->send();this

 


3、yii2 session操做
// 檢查session是否開啓 
Yii::$app->session->isActive;


// 開啓session
Yii::$app->session->open();


// 關閉session
Yii::$app->session->close();


// 銷燬session中全部已註冊的數據
Yii::$app->session->destroy();


// 檢查session變量是否已存在,如下用法是相同的:
if (Yii::$app->session->has('language')) ...
if (isset(Yii::$app->session['language'])) ...
if (isset($_SESSION['language'])) ...


// 獲取session中的變量值,如下用法是相同的:
$language = Yii::$app->session->get('language');
$language =Yii::$app->session['language’];//??待驗證
$language = isset($_SESSION['language']) ? $_SESSION['language'] : null;


// 設置一個session變量,如下用法是相同的:
Yii::$app->session->set('language', 'en-US');
Yii::$app->session['language'] = 'en-US';
$_SESSION['language'] = 'en-US';


// 刪除一個session變量,如下用法是相同的:
Yii::$app->session->remove('language');
unset($Yii::$app->session['language']);
unset($_SESSION['language']);


// 遍歷全部session變量,如下用法是相同的:
foreach (Yii::$app->session as $name => $value) ...
foreach ($_SESSION as $name => $value) ...

---------------------

相關文章
相關標籤/搜索