關於thinkphp5自定義標籤庫解析的問題

2021-08-31 20:49:45 字數 851 閱讀 4110

今天tp5的自定義標籤庫著實坑了我一把,原因有兩點:

1.預載入標籤是有快取的,你設定了預載入標籤庫,要刪除快取後重新重新整理才有效,否則無效,這導致我除錯的時候不知道自己到底設定對了沒有

2.我一直以為配置是會自動繼承父級的配置的,也就是說,在模組中我只需要寫好不同的配置就行,然後事實上一位陣列的配置確實是這樣,但是二位陣列的時候第二層陣列是會直接覆蓋第一層陣列的,舉個栗子:

猜猜結果是什麼,對了,結果是a和b被完全覆蓋,ac,dy,bc直接不見了,但是f還在

所以要正確載入標籤庫,應該在對應的模組下面載入

配置好後記得刪除快取

關於大小寫的問題,載入的時候都要大寫,在模板中要小寫,切記!!!

補充另乙個坑爹的東西,如圖

tp中的標籤引數是可以傳變數的,所以我也理所當然的認為這裡傳遞的變數會自動解析成變數供我在標籤庫中使用,然而…我想多了!,這裡傳遞的是什麼在標籤庫中獲取到的就是什麼!!!

起初我也以為$this->autobuildvar就是解析變數的函式,然而又不是!!!這個函式僅僅是把你傳遞的字串轉換為$***的變數格式,想要把傳遞的變數真正解析出來,需要你在最後拼接的字串中拼接出來,就像上圖中的$__tag__陣列,起初我是直接把引數的$tagjson序列化放進去,以為變數就會自動解析,然後還是學藝不精啊,各位同學,請記住啊,在標籤庫中獲取的引數如果是變數,切記要在拼接的時候放在php內容裡面拼接就可以了.

上圖我使用了type來判斷,一定要放在這裡面,因為$parse這裡面的**是最終插入到模板的,自然帶php的**會解析為真正的php**,而上面的**都不會在模板中使用,這也是在外面無法解析的真正原因!!!

thinkphp5 自定義標籤

use think template taglib class tytag extends taglib else if empty tag help html return html textarea 表單 label 表單標題 name 表單name value 表單值 help 表單說明 pu...

thinkphp5自定義分頁樣式

1.在extend 目錄下建立page目錄,在page目錄中建立page.php檔案,將以下 放入檔案中 namespace page usethink paginator class page extends paginator else protected function prev else ...

thinkphp5驗證碼自定義配置

tp5驗證碼設定 系統驗證碼 分頁配置 paginate type bootstrap var page page list rows 15,應用配置 驗證碼 captcha 驗證碼字元集合 codeset 123456789 codeset abcdefghijkmnpqrstuvwxyz 切換為...