tp5使用 GET獲取不到資料?

2021-08-19 17:35:19 字數 945 閱讀 9234

使用過tp5和tp3版本朋友,會發現tp5完全是thinkphp的一次重構。給我們的不是版本的公升級,完全就是兩個不同的框架嘛。如果用習慣了tp3,斷崖式跳到了tp5,難免會不適應。

其中就有乙個對$_get這個全域性變數的使用問題,在有些情況下,tp5無法使用$_get獲取資料?

如果你的請求的位址引數是以pathinfo形式,這樣引數是無法用$_get去獲取的,同樣也不能使用系統中的get方法。

比如:

//請求位址""

public function user()

以上方法都是tp5獲取常見的get引數的獲取方式,結果能驗證上面的結論。我們再看看以下位址請求:

//請求位址為""

public function user()

這樣普通傳參方式,get方法和$_get就能正常獲取。我們再看看混合式位址方式

//請求位址為"?name=chenxing"

public function user()

混合式位址比較亂,但在ajax請求時生成位址很有可能是這種混合式。

上面的三種請求引數位址在我們日常開發中比較常見,那麼能夠正常獲取的請用系統的param方式獲取,這個是最相容的獲取方式。

回到問題,我們**為什麼pathinfo中的引數$_get無法正常獲取?能產生這樣疑問的朋友其實陷入tp3給我們帶來的認知誤區。在tp3中上面的請求的三種方式都可以用$_get獲取其中的所有引數,久而久之你就習慣了這種寫法,然後就把這種獲取方式變成理所當然。我們撇開框架pathinfo位址同樣無法用$_get獲取,對於位址中的get請求的引數必須是以」?「開始的。那麼為什麼tp3可以呢?因為tp3把pathinfo中的引數整合到了get請求中。

現在大家應該能夠明白的感受到開頭提到的tp3到tp5這種斷崖式公升級了吧。忘掉tp3,讓tp5在我們手中快活的遊走

[**]

tp5獲取不到session的值

我在控制器裡設了兩個方法,第乙個設定session,然後跳轉到第二個方法,獲取並輸出session。設定session session set uid res uid 獲取session echo session get uid 然後輸出是空,就是獲取不到session的值,檢視了預設配置,sess...

tp5獲取器用法

獲取器的作用是在獲取資料的字段值後自動進行處理,相當的方便.示例 model層 獲取器的作用是在獲取資料的字段值後自動進行處理,data必須得是資料集,不能用toarray 轉化 public function getstatustextattr value,data controller層 row...

tp5快取使用

引入 usethink cache 使用 options 快取型別為file type file 快取有效期為永久有效 expire 0,快取字首 prefix think 指定快取目錄 path runtime cache cache connect options if cache has th...