請求物件
請求物件呼叫
1、控制器構造方法注入
2、控制器操作方法注入(無論是否繼承系統的控制器基類,都可以使用操作方法注入)
3、Facade呼叫
4、助手函式request
請求資訊
Request物件支援獲取當前的請求資訊,包括:
方法 | 含義 |
---|---|
host | 當前訪問域名或者IP |
scheme | 當前訪問協議 |
port | 當前訪問的埠 |
remotePort | 當前請求的REMOTE_PORT |
protocol | 當前請求的SERVER_PROTOCOL |
contentType | 當前請求的CONTENT_TYPE |
domain | 當前包含協議的域名 |
subDomain | 當前訪問的子域名 |
panDomain | 當前訪問的泛域名 |
rootDomain | 當前訪問的根域名(V5.1.6+) |
url | 當前完整URL |
baseUrl | 當前URL(不含QUERY_STRING) |
query | 當前請求的QUERY_STRING引數 |
baseFile | 當前執行的檔案 |
root | URL訪問根地址 |
rootUrl | URL訪問根目錄 |
pathinfo | 當前請求URL的pathinfo資訊(含URL字尾) |
path | 請求URL的pathinfo資訊(不含URL字尾) |
ext | 當前URL的訪問字尾 |
time | 獲取當前請求的時間 |
type | 當前請求的資源型別 |
method | 當前請求型別 |
輸入變數
-
檢測變數是否設定
$request->has('id','post');
-
變數獲取
變數獲取的格式:變數型別方法('變數名/變數修飾符','預設值','過濾方法')
最常用的獲取變數型別方法如下:
方法 | 描述 |
---|---|
param | 獲取當前請求的變數 |
get | 獲取 $_GET 變數 |
post | 獲取 $_POST 變數 |
param方法會把當前請求型別的引數和路由變數以及GET請求合併,並且路由變數是優先的
獲取請求型別
在很多情況下面,我們需要判斷當前操作的請求型別是GET、POST、PUT、DELETE或者HEAD,一方面可以針對請求型別作出不同的邏輯處理,另外一方面有些情況下面需要驗證安全性,過濾不安全的請求
用途 | 方法 |
---|---|
獲取當前請求型別 | method |
判斷是否GET請求 | isGet |
判斷是否POST請求 | isPost |
判斷是否PUT請求 | isPut |
判斷是否DELETE請求 | isDelete |
判斷是否AJAX請求 | isAjax |
判斷是否PJAX請求 | isPjax |
判斷是否為JSON請求 | isJson(V5.1.38+) |
判斷是否手機訪問 | isMobile |
判斷是否HEAD請求 | isHead |
判斷是否PATCH請求 | isPatch |
判斷是否OPTIONS請求 | isOptions |
判斷是否為CLI執行 | isCli |
判斷是否為CGI模式 | isCgi |
HTTP頭資訊
$header = $request->header();
$agent = $request->header('user-agent');
偽靜態
URL偽靜態通常是為了滿足更好的SEO效果,ThinkPHP支援偽靜態URL設定,可以通過設定url_html_suffix
引數隨意在URL的最後增加你想要的靜態字尾,而不會影響當前操作的正常執行
'url_html_suffix' => 'shtml'
'url_html_suffix' => '' //支援所有的靜態字尾訪問
'url_html_suffix' => 'html|shtml|xml' // 多個偽靜態字尾設定 用|分割
'url_html_suffix' => false,// 關閉偽靜態字尾訪問
如果要獲取當前的偽靜態字尾,可以使用Request物件的ext方法。
$ext = $request->ext();
響應
大多數情況,我們不需要關注Response物件本身,只需要在控制器的操作方法中返回資料即可
如果修改配置檔案,設定:'default_return_type' => 'json'
則訪問的輸出結果就變成了JSON字串
- 響應輸出型別
為了規範和清晰起見,最佳的方式是在控制器最後明確輸出型別(畢竟一個確定的請求是有明確的響應輸出型別),預設支援的輸出型別包括:
輸出型別 | 快捷方法 | 對應Response類 |
---|---|---|
HTML輸出 | response | \think\Response |
渲染模板輸出 | view | \think\response\View |
JSON輸出 | json | \think\response\Json |
JSONP輸出 | jsonp | \think\response\Jsonp |
XML輸出 | xml | \think\response\Xml |
頁面重定向 | redirect | \think\response\Redirect |
附件下載(V5.1.21+) | download | \think\response\Download |
-
響應引數
1、data設定響應資料
2、code設定狀態碼
3、header設定頭資訊(支援批量)
4、options設定額外引數 -
重定向
redirect助手函式重定向以及傳參:redirect('hello',['name'=>'thinkphp']);