TP6.0 獲取請求物件的五種方式
阿新 • • 發佈:2020-08-13
目錄
think\Request
、think\facade\Request
、app\Request
之間的聯絡
官方手冊原文
當前的請求物件由think\Request類負責,該類不需要單獨例項化呼叫,通常使用依賴注入即可。在其它場合則可以使用think\facade\Request靜態類操作。專案裡面應該使用app\Request物件,該物件繼承了系統的think\Request物件。
個人總結
請求資訊本質上由think\Request類負責,但是使用的時候不應直接使用該類。
要麼使用 think\facade\Request 類靜態呼叫,要麼通過app\Request物件鏈式呼叫
1. 門面類
// app\Request 物件
$request = \think\facade\Request::instance();
dump($request);
2. 依賴注入
特別注意:注入的是 \think\Request,而不能是門面類 \think\facade\Request
public function save(\think\Request $request)
{
// app\Request 物件
dump($request);
}
3. 框架提供的基礎控制器的 request
屬性
繼承基礎控制器:BaseController.php
<?php namespace app\controller; use app\BaseController; class User extends BaseController { public function index() { // app\Request 物件 $request = $this->request; dump($request); } }
基礎控制器構造方法
4. request() 助手函式
request() 助手函式返回 \app\Request
物件
// app\Request 物件
$request = request();
dump($request);
5. app() 超級助手函式
// app\Request 物件 $request1 = app('request'); // app\Request 物件 $request2 = app()->request; // app\Request 物件 $request3 = app()->app->request; dump($request1); dump($request2); dump($request3);