首頁 >php框架 >YII >yii將資料操作放在widget合理嗎

yii將資料操作放在widget合理嗎

(*-*)浩
(*-*)浩原創
2019-12-14 10:10:431826瀏覽

yii將資料操作放在widget合理嗎

有的人會選擇製作多個layout,在不同地方切換layout,但這樣程式碼的重用性沒有發揮出來,而且不夠靈活。 yii裡面有一個很方便的機制來解決這個問題,那就是 —— widget,小部件是也。 (推薦學習:yii框架

yii裡面有一些自帶的widget,他們放在web.widgets和zii.widgets下面,例如有我們常用的CLinkPager、 CMenu大家可以看看。

要自行擴充widget,根據手冊上的介紹,需要繼承CWidget,並且覆寫run()方法。我們來開始擴展第一個widget:

創建widget存放目錄: 在application(預設是protected)下創建目錄widgets,用來存放widget類,然後創建widgets.views目錄,用來存放widget的視圖文件。

建立widget類別: 在application.widgets下面建立一個名為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));
    }
}

解釋這段程式碼:依照規則,類別名稱TestWidget與檔案名稱TestWidget.php相同,類別TestWidget需要繼承CWidget,然後重寫(rewrite)run()方法,方法會在widget被渲染是呼叫。

在run()方法裡呼叫$this->render()方法渲染test視圖,將變數$datetime傳遞到視圖(參見控制器的視圖渲染)。可以在裡面查詢資料庫,進行各種操作,將運算的結果傳入視圖。

以上是yii將資料操作放在widget合理嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn