Thinkphp5基礎——10 請求引數
獲取請求引數
獲取請求引數的方式從型別上看,分為1. 請求物件獲取
、2. 助手函式直接獲取
兩種形式。
請求物件獲取
官方解釋
當前的請求物件由think\Request類負責,在很多場合下並不需要例項化呼叫,通常使用依賴注入即可。
在其它場合(例如模板輸出等)則可以使用think\facade\Request靜態類操作。
獲取方式
1. 繼承了think\Controller
直接使用$this->request()->param('請求引數key')
2. 依賴注入
1)建構函式注入
步驟:
1)引用think\Request類;
2)建構函式依賴注入,並將think\Request例項儲存為類屬性;
3)index操作方法呼叫類屬性獲取例項物件,再呼叫param()方法獲取請求引數。
use think\Request;
class Index
{
protected $request;
public function __construct(Request $request)
{
$this->request = $request;
}
public function index()
{
return $this->request->param('name');
}
}
2)操作方法注入
步驟:
1)引用think\Request類;
2)操作方法依賴注入,直接使用think\Request例項的方法獲取請求引數。
use think\Request;
class Index
{
public function index(Request $request)
{
return $request->param('name');
}
}
#### 擴充套件部分
實際上,我們還可以直接使用 $request->引數key 的形式直接獲取變數。
3. Facade呼叫
Facade可以讓類無需例項化而直接進行靜態方式呼叫。
實際上Facade做的事情就是建立一個代理類,在呼叫Facade的時候, 間接呼叫原來的類,然後使用類方法。
步驟:
1)引用think\facade\Request類,此時Request實際上就是think\Request類,並且可以靜態呼叫原來的類方法;
2)靜態呼叫param()方法獲取請求引數。
<?php
use think\facade\Request;
class Index
{
public function index()
{
return Request::param('name');
}
}
4.助手函式
request()->param('引數key')
class Index extends Controller
{
public function index()
{
return request()->param('name');
}
}
助理函式獲取
input('引數key')
input('param.引數key')
input('post.') // 獲取全部post變數
input('get.') // 獲取get全部變數
請求引數繫結
引數繫結是把當前請求的變數作為操作方法(也包括架構方法)的引數直接傳入,引數繫結並不區分請求型別。
舉個例子,路由裡面定義下面的路由:
Route::get('api/:version/order/:id','api/:version.Order/getOrderDetail');
上面的路由表示它將接收一個id引數,並且將會把這個id引數傳到getOrderDetail()方法。
再來看看getOrderDetail()方法:
public function getOrderDetail($id){
return '我是路由傳過來的id引數:' . $id;
}
這便是所謂的引數繫結,按照變數名進行引數繫結的引數必須和URL中傳入的變數名稱一致,但是引數順序不需要一致。
相關文章
- JavaWeb基礎-Request物件接收表單請求引數JavaWeb物件
- 基礎設施建設——全域性請求引數校驗
- 有趣的請求引數/請求頭
- Python爬蟲基礎-01-帶有請求引數的爬蟲Python爬蟲
- Springboot請求引數解密Spring Boot解密
- SpringMVC請求引數解析SpringMVC
- Charles 修改請求(Request)引數
- 請求引數的傳遞
- fastapi 請求引數 校驗ASTAPI
- ajax中POST請求與引數(請求體)設定
- Postman傳送請求引數是Map格式的請求Postman
- postman 請求引數和 Spring Boot Controller 接受引數PostmanSpring BootController
- GOLANG Web請求引數驗證GolangWeb
- GET請求的引數丟失
- Mybatis foreach 請求引數是物件集合MyBatis物件
- 表單請求獲取路由引數路由
- charles 打斷點修改請求引數斷點
- java傳送get請求帶引數Java
- 關於在request請求時,處理請求引數的問題
- 數論基礎——求導求導
- leaflet動態更改wms瓦片請求引數
- RestTemplate exchange GET POST請求傳引數DEMOREST
- SpringBoot Get 請求接收 Date 型別引數Spring Boot型別
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- Thinkphp5基礎——09 路由PHP路由
- Python基礎(11):引數Python
- SpringBoot使用Axios傳送請求,引數處理Spring BootiOS
- GET請求引數為中文時亂碼分析
- Blazor Server 發起HttpPost請求,但是多引數BlazorServerHTTP
- RESTFUL風格的URL請求及引數接收REST
- 請求引數為物件,mybatis的sql寫法物件MyBatisSQL
- SpringBoot 攔截器獲取http請求引數Spring BootHTTP
- SpringMVC底層——請求引數處理流程描述SpringMVC
- 拙見--springMVC的controller接受的請求引數SpringMVCController
- (七)Spring Boot Controller的請求引數獲取Spring BootController
- Django基礎教程之請求與相應Django
- fixtrue基礎之scope引數
- fixtrue基礎之name引數