問題描述:在做專案的時候遇到問題,也是很常見的問題,一般主頁包含頭部和腳步,為了方便管理,這些都需要使用包含檔案來實現,thinkphp提供了包含檔案的方法,以上是最簡單的包含的操作的方式,但是在執行的過程中我發現,在請求的時候只是請求的是模板檔案,也就是所謂的靜態包含,但是如果遇到選單是動態生成的就很難辦了.
在網上找到乙個解決辦法:使用widget
1、我們在頁面中實現乙個分類顯示的widget,首先我們要實現我們首先定義乙個widget控制器層 cate程式設計客棧widget,如下:
複製** **如下:
class catewidget extends action
}注意是在widget包中定義,和一般的action還是有區別的
2、然後,我們在模版中yubpnby通過r方法呼叫這個widget(擴充套件widget方式在模版中使用的是w方法),如果對r函式不了解的參考這裡.(
執行後的輸出結果是:menuwidget
3、如果,catewidget類的menu方法改成:
複製** **如下:
class catewidget extends action
}4、模版中的用法則需要改成:
複製** **如下:
5、如果需要在呼叫widget的時候 使用引數,可以這樣定義:
複製** **如下:
class catewidget extends action
}6、模版中的引數呼叫,使用:
複製** **如下:
則會輸出 5:thinkphp
7、來乙個複雜一點的例子:
複製** **如下:
class catewidget程式設計客棧 extends action
}8、catewiget類渲染了乙個模版檔案tpl/cate/menu.html,呼叫模版的靈活也是使用這種方式實現widget的區別(widget擴充套件方式中需要呼叫renderfile方法渲染模版)。
在menu.html模版檔案中的用法::
本文標題: thinkphp實現動態包含檔案的方法
本文位址:
Thinkphp 模板 包含檔案
在當前模版檔案中包含其他的模版檔案使用include標籤,標籤用法 模版表示式的定義規則為 模組 主題 控制器 操作 例如 包含頭部模版header 包含選單模版menu 包含blue主題下面的menu模版可以一次包含多個模版,例如 注意,包含模版檔案並不會自動呼叫控制器的方法,也就是說包含的其他模...
靜態包含與動態包含
靜態包含與動態包含 一 動態包含 includefile inc top.jsp 特別注意 在使用包含時,如果用的是絕對路徑不用再增加上下文路徑,會預設自己增加上下文路徑 二 靜態包含 兩者之間需要注意的是 靜態包含指的是 匯入的檔案會先被編譯成html檔案才進行匯入 動態包含 不進行任何的編譯,直...
靜態包含和動態包含
include 是包含頁面的指令,屬於靜態頁面引入。頁面引入的好處在於 可以把多個頁面共同的部分抽象出來定義。靜態包含是發生在編譯階段 寫法 在靜態引入中,子頁面是原封不動的把頁面的資訊放到了父頁面中,父頁面把所有頁面的頁面資訊都收集完成後,統一的進行解析,完成頁面的輸出。這樣,如果在不同的頁面中定...