thinkPHP下的widget擴(kuò)展用法實(shí)例分析
本文實(shí)例講述了thinkPHP下的widget擴(kuò)展用法。分享給大家供大家參考,具體如下:
Widget擴(kuò)展用于在頁(yè)面根據(jù)需要輸出不同的內(nèi)容,Widget擴(kuò)展的定義是在項(xiàng)目的Lib\Widget目錄下面定義Widget類庫(kù),例如下面定義了一個(gè)用于顯示最近的評(píng)論的Widget:
位于Lib\Widget\ShowCommentWidget.class.php
Widget類庫(kù)需要繼承Widget類,并且必須定義render方法實(shí)現(xiàn),例如:
render方法必須使用return返回要輸出的字符串信息,而不是直接輸出。
Widget也可以調(diào)用Widget類的renderFile方法,渲染模板后進(jìn)行輸出。
在項(xiàng)目的lib目錄下建立widget目錄,與action目錄同級(jí)。
建立TestWidget.class.php:
class TestWidget extends Widget{
public function render($data){
//print_r($data);
$data['id']=$data['id'];
$data['info']=$data['info'];
$content = $this->renderFile('index',$data);
//print_r($content);
return $content;
}
}
在此目錄下建立對(duì)應(yīng)的Test文件夾,下面放$this->rendFile調(diào)用的html頁(yè)面。
index.html 通過使用循環(huán)顯示數(shù)據(jù)的信息
<div>
這是widget調(diào)用的模板頁(yè)面
<foreach name="id" item="vo"> <span style="color:#ff0000">//注意:id對(duì)應(yīng)與$data的鍵值</span>
{$vo}
</foreach>
<br>
<foreach name="info" item="vo"> <span style="color:#ff0000">//info對(duì)應(yīng)于$data的鍵值</span>
<foreach name="vo" item="v">
{$v}
</foreach>
</foreach>
</div>
action方法:
IndexAction.class.php
代碼如下:
class TestAction extends Action{
public function index(){
$info=array(array("1","AA","title"),array("2","BB","title2"));
$this->assign("info",$info);
$this->display();
}
}
action調(diào)用的tpl中的html頁(yè)面的為index.html
代碼如下:
<div>
這個(gè)是test調(diào)用的action<br>
{:W('Test',array("id"=>array("ID","name","title"),"info"=>$info))} <span style="color:#cc0000">//傳遞給TestWidget.class.php 的參數(shù),要以array格式傳遞</span>
</div>
運(yùn)行IndexAction.class.php
頁(yè)面顯示如下:

這樣就把show.html中的內(nèi)容包含進(jìn)來了
name什么時(shí)候用widgte呢?
widget通常是一些封裝好了的JS效果組件,直接調(diào)用‘加入?yún)?shù)就可以得到一些效果,例如,TAB菜單、旋轉(zhuǎn)木馬、圖片輪播等交互效果
比如網(wǎng)站的菜單欄。右邊常不更新的欄目之類的…
方便多次調(diào)用,比如在頁(yè)面上左側(cè)顯示一個(gè)新聞列表,每個(gè)頁(yè)面如果都調(diào)用這個(gè)列表,是不是得在每個(gè)控制器里寫一遍相同的代碼,不累么,用widget可能只需要寫一次,然后模板中多次使用
希望本文所述對(duì)大家基于thinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- ThinkPHP的Widget擴(kuò)展實(shí)例
- ThinkPHP中Widget擴(kuò)展的兩種寫法及調(diào)用方法詳解
- ThinkPHP3.1的Widget新用法
- thinkPHP5框架中widget的功能與用法詳解
- Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法分析
- Thinkphp 框架擴(kuò)展之標(biāo)簽庫(kù)驅(qū)動(dòng)原理與用法分析
- Thinkphp 框架擴(kuò)展之?dāng)?shù)據(jù)庫(kù)驅(qū)動(dòng)常用方法小結(jié)
- Thinkphp 框架擴(kuò)展之類庫(kù)擴(kuò)展操作詳解
- Thinkphp 框架擴(kuò)展之Widget擴(kuò)展實(shí)現(xiàn)方法分析
相關(guān)文章
PHP的foreach中使用引用時(shí)需要注意的一個(gè)問題和解決方法
這篇文章主要介紹了PHP的foreach中使用引用時(shí)需要注意的一個(gè)問題和解決方法,即數(shù)組最后一個(gè)元素的值會(huì)發(fā)生改變的情況,需要的朋友可以參考下2014-05-05
Laravel5.5 支付寶手機(jī)網(wǎng)站支付的教程
這篇文章主要介紹了Laravel5.5 支付寶手機(jī)網(wǎng)站支付的教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
php使用phpoffice/phpspreadsheet導(dǎo)出圖片實(shí)例
這篇文章主要為大家介紹了php使用phpoffice/phpspreadsheet導(dǎo)出圖片實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
thinkphp實(shí)現(xiàn)上一篇與下一篇的方法
這篇文章主要介紹了thinkphp實(shí)現(xiàn)上一篇與下一篇的方法,以實(shí)例形式對(duì)比分析了兩種不同的實(shí)現(xiàn)方法供大家選擇,方法二在方法一的基礎(chǔ)上增加了判斷的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12
php實(shí)現(xiàn)的支付寶網(wǎng)頁(yè)支付功能示例【基于TP5框架】
這篇文章主要介紹了php實(shí)現(xiàn)的支付寶網(wǎng)頁(yè)支付功能,結(jié)合實(shí)例形式分析了基于TP5框架框架的支付寶網(wǎng)頁(yè)支付功能具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09
laravel 操作數(shù)據(jù)庫(kù)常用函數(shù)的返回值方法
今天小編就為大家分享一篇laravel 操作數(shù)據(jù)庫(kù)常用函數(shù)的返回值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
Laravel8 使用圖形驗(yàn)證碼做登錄功能的實(shí)現(xiàn)
這篇文章主要介紹了Laravel8 使用圖形驗(yàn)證碼做登錄功能的實(shí)現(xiàn),通過安裝擴(kuò)展包調(diào)用相關(guān)接口進(jìn)行校驗(yàn)驗(yàn)證碼是否正確,代碼簡(jiǎn)單易懂,需要的朋友可以參考下2021-06-06
PHP實(shí)現(xiàn)權(quán)限管理功能示例
下面小編就為大家?guī)硪黄狿HP實(shí)現(xiàn)權(quán)限管理功能示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09

