本教程将帮助您建立本身的自定义小部件在 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
我认为它可能对你有帮助。
译者注:本文基于原文略有改动。