教你在Yii2.0框架中如何建立自定義小部件

來源:How to create custom widget in Yii2.0 Frameworkphp

本教程將幫助您建立本身的自定義小部件在 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

我認爲它可能對你有幫助。

譯者注:本文基於原文略有改動。

相關文章
相關標籤/搜索