1. 程式人生 > >yii2的請求(request)、響應與跳轉(response)、快取(session)常用操作

yii2的請求(request)、響應與跳轉(response)、快取(session)常用操作

一、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->isPut

 


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


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

 


二、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');


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


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


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

 


因為響應格式預設為HTML, 只需要在操作方法中返回一個字串, 
如果想使用其他響應格式,應在返回資料前先設定格式, 例如返回json串:
public function actionInfo()
{
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    return [
        'message' => 'hello world',
        'code' => 100,
    ];
}

 


//瀏覽器跳轉
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();

 


三、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) ...

---------------------
作者:築夢悠然
來源:CSDN
原文:https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/79997786
版權宣告:本文為博主原創文章,轉載請附上博文連結!