国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > ThinkPHP > 正文

thinkPHP5框架中widget的功能與用法詳解

2024-09-09 15:20:26
字體:
供稿:網(wǎng)友

本文實(shí)例講述了thinkPHP5框架中widget的功能與用法。分享給大家供大家參考,具體如下:

注意:使用助手函數(shù)return view()渲染,則掛件功能會失敗,必須使用return $this->fetch()

我們在使用模板的時(shí)候,一般網(wǎng)站的頂部(比如說導(dǎo)航欄,或者用戶登錄區(qū)域等等),以及網(wǎng)站的尾部footer(比如友情鏈接或者版權(quán)說明等等),和body區(qū)域,我們會為了簡化代碼,都會將這三個(gè)部分剖開分離,然后通過模板繼承的方式來使用.

但是如果頂部和尾部只是單純的html代碼還好說,但是里面通常有變量賦值和循環(huán)遍歷以及判斷等邏輯.

當(dāng)然原始的方法就是我們在這兩個(gè)區(qū)域里面使用原生的php代碼來實(shí)現(xiàn),但是這并不符合thinkphp5框架的理念,所以就早期的版本中就有widget這個(gè)東東,熟悉wordpress和yii框架的都非常熟悉,這個(gè)都是建成掛件,小部件的東西.

他可以非常方便的讓你在網(wǎng)站某一區(qū)域設(shè)置包含變量循環(huán)等輸出,比如廣告模塊,日歷模塊,等等.

下面就介紹如何在thinkphp5中簡單的使用這項(xiàng)功能.

首先我們需要在模塊目錄下,簡歷widget目錄,然后在里面建立Blog控制器,然后在index的方法中寫下如下代碼:

注意,代碼中的Book為我自定義的模型,只是配合舉例來用.

當(dāng)然你可以繼承Controller,也可以選擇不繼承,這取決于你使用框架的習(xí)慣,當(dāng)然如果不繼承,你需要使用view助手渲染模板.

代碼的意思就是將模型Book中的數(shù)據(jù)取出,并賦值到模板中.

重點(diǎn):$this->fetch();不要以為里面不寫模板路徑就會默認(rèn)只想view視圖下blog文件夾中的index視圖,在widget這里是不行的,必須填寫對應(yīng)視圖路徑.

對應(yīng)的視圖路徑為view視圖下的blog目錄下index.html,當(dāng)然i你可以自定義視圖名稱

  1. namespace app/index/widget; 
  2. use app/index/model/Book; 
  3. use think/Controller; 
  4. class Blog extends Controller 
  5.   public function index() 
  6.   { 
  7.     $list = Book::all(); 
  8.     $this->assign('list',$list); 
  9.     return $this->fetch('widget/index'); 
  10.   } 

然后在view/blog/index.html中代碼如下,僅作示例來用,在這里自定義輸出遍歷了指定內(nèi)容:

  1. {volist name="list" id="v"
  2. <p>{$v.id}+{$v.bookname}</p> 
  3. {/volist} 

你可以在實(shí)際應(yīng)用中使用任何想需要的功能,比如說導(dǎo)航欄遍歷輸出,或者許多許多掛件模塊.

如何調(diào)用呢,你可以在你的指定視圖模板中或者在繼承的公共模板中使用以下

{:widget('Blog/index')} 這種方式來輸出,Blog為widget目錄下的控制器,index為控制器中的方法名.

  1. <!doctype html> 
  2. <html lang="en"
  3. <head> 
  4.   <meta charset="UTF-8"
  5.   <meta name="viewport" 
  6.      content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
  7.   <meta http-equiv="X-UA-Compatible" content="ie=edge"
  8.   <title>Document</title> 
  9. </head> 
  10. <body> 
  11.   <p>這里顯示的默認(rèn)主頁輸出內(nèi)容</p> 
  12.   <p>如果widget使用正常,下面將輸出遍歷一個(gè)數(shù)據(jù)表的內(nèi)容</p> 
  13.   {:widget('Blog/index')} 
  14. </body> 
  15. </html> 

至此,完成輸出以下頁面!

這里顯示的默認(rèn)主頁輸出內(nèi)容,如果widget使用正常,下面將輸出遍歷一個(gè)數(shù)據(jù)表的內(nèi)容

1+weilai

2+yanyan

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 大理市| 蒲城县| 海兴县| 郁南县| 六枝特区| 崇州市| 绥中县| 美姑县| 辽宁省| 张北县| 旌德县| 阳西县| 宁南县| 白玉县| 安陆市| 泽州县| 伊春市| 朝阳市| 玉田县| 四平市| 康平县| 喀喇沁旗| 深州市| 乌拉特前旗| 渝北区| 克什克腾旗| 周至县| 呼和浩特市| 都江堰市| 临城县| 芮城县| 始兴县| 敦煌市| 安康市| 东安县| 濮阳市| 枣阳市| 凤山县| 皮山县| 汽车| 文安县|