這篇文章主要介紹了thinkPHP5框架中widget的功能與用法,結合實例形式分析了thinkPHP5中Widget相關概念、使用方法及操作注意事項,需要的朋友可以參考下
#本文實例講述了thinkPHP5框架中widget的功能與用法。分享給大家供大家參考,如下:
注意:使用助手函數return view()
渲染,則掛件功能會失敗,必須使用return $this->fetch()
我們在使用模板的時候,一般網站的頂部(比如說導航欄,或者用戶登入區域等等),以及網站的尾部footer(例如友情連結或版權說明等等),和body區域,我們會為了簡化程式碼,都會將這三個部分剖開分離,然後透過模板繼承的方式來使用.
但是如果頂部和尾部只是單純的html程式碼還好說,但是裡面通常有變數賦值和循環遍歷以及判斷等邏輯.
當然原始的方法就是我們在這兩個區域裡面使用原生的php程式碼來實現,但是這並不符合thinkphp5框架的理念,所以就早期的版本中就有widget這個東東,熟悉wordpress和yii框架的都非常熟悉,這個都是建成掛件,小部件的東西.
他可以非常方便的讓你在網站某一區域設定包含變數循環等輸出,例如廣告模組,行事曆模組,等等.
下面就介紹如何在thinkphp5中簡單的使用這項功能.
首先我們需要在模組目錄下,簡歷widget目錄,然後在裡面建立Blog控制器,然後在index的方法中寫下如下程式碼:
注意,程式碼中的Book為我自訂的模型,只是配合舉例來用.
當然你可以繼承Controller,也可以選擇不繼承,這取決於你使用框架的習慣,當然如果不繼承,你需要使用view助手渲染模板.
代碼的意思就是將模型Book中的數據取出,並賦值到模板中.
重點:$this->fetch();不要以為裡面不寫模板路徑就會預設只想view視圖下blog資料夾中的index視圖,
在widget這裡是不行的,必須填寫對應視圖路徑
對應的視圖路徑為view視圖下的blog目錄下index.html,當然i你可以自訂視圖名稱
namespace app\index\widget; use app\index\model\Book; use think\Controller; class Blog extends Controller { public function index() { $list = Book::all(); $this->assign('list',$list); return $this->fetch('widget/index'); } }
然後在view/blog/index.html中程式碼如下,僅作範例來用
在這裡自訂輸出遍歷了指定內容
{volist name="list" id="v"} <p>{$v.id}+{$v.bookname}</p> {/volist}
#你可以在實際應用中使用任何想需要的功能,比如說導航列遍歷輸出,或許多許多掛件模組
如何呼叫呢,你可以在你的指定視圖模板中或在繼承的公共模板中使用以下
{:widget('Blog /index')}
這種方式來輸出,Blog為widget目錄下的控制器,index為控制器中的方法名稱
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <p>这里显示的默认主页输出内容</p> <p>如果widget使用正常,下面将输出遍历一个数据表的内容</p> {:widget('Blog/index')} </body> </html>
至此,完成輸出以下頁面!
這裡顯示的預設主頁輸出內容
如果widget使用正常,下面將輸出遍歷一個資料表的內容
1 weilai
2 yanyan
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
##
以上是thinkPHP5框架中widget的功能與用法解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!