本教程將幫助您建立本身的自定義小部件在 yii framework 2.0。部件是可重用的模塊和用於視圖。yii2
建立一個小部件,須要繼承 yii\base\Widget
,覆蓋重寫 yii\base\Widget::init()
和/或 yii\base\Widget::run()
方法.app
注意:在yii 1.x,咱們將使用 widgets
的文件夾。yii
在 Yii2.0 建立本身的小部件this
首先建立一個名爲 widgets
的文件夾在項目根目錄。如今在 widgets
文件夾內建立一個「HelloWidget」類 。使用這個小部件,咱們將與用戶名一塊兒顯示歡迎消息。請參見下面的代碼來建立一個小部件類。spa
<?php namespace app\widgets; use yii\base\Widget; use yii\helpers\Html; class HelloWidget extends Widget { public $message; public function init() { parent::init(); if($this->message===null){ $this->message= 'Welcome User'; }else{ $this->message= 'Welcome '.$this->message; } } public function run() { return Html::encode($this->message); } } ?>
init() - 應該包含小部件的屬性, run() - 應該包含小部件的渲染結果
HelloWidget」這個類是咱們的自定義小部件。「app\widgets」是這個類的名稱空間,「HelloWidget」是一個類名。使用命名空間和類名,咱們能夠訪問這個小部件應用,即‘app\widgets\HelloWidget’。code
在Yii2.0顯示小部件內容繼承
在視圖代碼中使用 app\widgets\HelloWidget
添加小部件應用。看到如下代碼如何被稱爲小部件類。教程
控制器::SiteController.phpget
<?php .......... class SiteController extends Controller { ........... public function actionCreatewidget() { return $this->render('hellowidget'); } ........... } ?>
視圖: site/hellowidget.php
<?php use app\widgets\HelloWidget; ?> <?= HelloWidget::widget(['message' => ' Yii2.0']) ?>
輸出
Welcome Yii2.0
我認爲它可能對你有幫助。
譯者注:本文基於原文略有改動。