小編給大家分享一下yii如何將數(shù)據(jù)操作放在widget,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
網(wǎng)站的建設(shè)創(chuàng)新互聯(lián)建站專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計體驗!已為公路鉆孔機等企業(yè)提供專業(yè)服務(wù)。
有的人會選擇制作多個layout,在不同地方切換layout,但這樣代碼的重用性沒有發(fā)揮出來,而且不夠靈活。yii里面有一個很方便的機制來解決這一問題,那就是 —— widget,小部件是也。
yii里面有一些自帶的widget,他們放在web.widgets和zii.widgets下面,比如有我們常用的CLinkPager、CMenu大家可以看一看。
要自己擴展widget,根據(jù)手冊上的介紹,需要繼承CWidget,并且覆蓋run()方法。我們來開始擴展第一個widget:
創(chuàng)建widget存放目錄: 在application(默認是protected)下創(chuàng)建目錄widgets,用來存放widget類,然后創(chuàng)建widgets.views目錄,用來存放widget的視圖文件。
創(chuàng)建widget類: 在application.widgets下面創(chuàng)建一個名為TestWidget.php的文件,命名沒太大講究,保證唯一性,見名知意即可。在里面加入以下代碼:
class TestWidget extends CWidget { public $datetime = ''; public function run() { $datetime = empty($this->datetime) ? date('Y-m-d H:i:s') : $this->datetime; $this->render('test', array('datetime'=>$datetime)); } }
解釋一下這段代碼:按照規(guī)則,類名TestWidget與文件名TestWidget.php相同,類TestWidget需要繼承CWidget,然后重寫(rewrite)run()方法,該方法會在widget被渲染是調(diào)用。
在run()方法里調(diào)用$this->render()方法渲染test視圖,將變量$datetime傳遞到視圖(參見控制器的視圖渲染)。可以在里面查詢數(shù)據(jù)庫,進行各種操作,將運算的結(jié)果傳入視圖。
以上是“yii如何將數(shù)據(jù)操作放在widget”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前文章:yii如何將數(shù)據(jù)操作放在widget
本文路徑:http://chinadenli.net/article10/pigcgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、搜索引擎優(yōu)化、做網(wǎng)站、小程序開發(fā)、品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)