widget擴(kuò)展怎么在thinkPHP項(xiàng)目中使用?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

具體如下:
Widget擴(kuò)展用于在頁(yè)面根據(jù)需要輸出不同的內(nèi)容,Widget擴(kuò)展的定義是在項(xiàng)目的Lib\Widget目錄下面定義Widget類(lèi)庫(kù),例如下面定義了一個(gè)用于顯示最近的評(píng)論的Widget:
位于Lib\Widget\ShowCommentWidget.class.php
Widget類(lèi)庫(kù)需要繼承Widget類(lèi),并且必須定義render方法實(shí)現(xiàn),例如:
render方法必須使用return返回要輸出的字符串信息,而不是直接輸出。
Widget也可以調(diào)用Widget類(lèi)的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 通過(guò)使用循環(huán)顯示數(shù)據(jù)的信息
<div>
這是widget調(diào)用的模板頁(yè)面
<foreach name="id" item="vo"> <span >//注意:id對(duì)應(yīng)與$data的鍵值</span>
{$vo}
</foreach>
<br>
<foreach name="info" item="vo"> <span >//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 >//傳遞給TestWidget.class.php 的參數(shù),要以array格式傳遞</span>
</div>運(yùn)行IndexAction.class.php
頁(yè)面顯示如下:

這樣就把show.html中的內(nèi)容包含進(jìn)來(lái)了
name什么時(shí)候用widgte呢?
widget通常是一些封裝好了的JS效果組件,直接調(diào)用‘加入?yún)?shù)就可以得到一些效果,例如,TAB菜單、旋轉(zhuǎn)木馬、圖片輪播等交互效果
比如網(wǎng)站的菜單欄。右邊常不更新的欄目之類(lèi)的…
方便多次調(diào)用,比如在頁(yè)面上左側(cè)顯示一個(gè)新聞列表,每個(gè)頁(yè)面如果都調(diào)用這個(gè)列表,是不是得在每個(gè)控制器里寫(xiě)一遍相同的代碼,不累么,用widget可能只需要寫(xiě)一次,然后模板中多次使用
關(guān)于widget擴(kuò)展怎么在thinkPHP項(xiàng)目中使用問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
標(biāo)題名稱(chēng):widget擴(kuò)展怎么在thinkPHP項(xiàng)目中使用-創(chuàng)新互聯(lián)
標(biāo)題URL:http://chinadenli.net/article46/dehjeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、做網(wǎng)站、定制網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容