本教程教你如何自定义widget,widget是view中能被重用的代码块。
创建widget的步骤:
1 继承yii\base\Widget.
2 实现yii\base\Widget::init() 和 yii\base\Widget::run()方法
3 注意下面代码是如何传递参数的
@ 创建widget
首先在项目根目录创建 components 目录,然后新建一个 HelloWidget 类。使用此widget,将会展示一条带有username的欢迎信息。如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php namespace app\components; 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() - should contain the widget properties, run() - should contain rendering result of the widget |
在yii2中展示widget 的内容
使用此widget只需在view头部引入 app\components\HelloWidget 命名空间
Controller: SiteController.php
1 2 3 4 5 6 7 8 9 10 11 | <?php .......... class SiteController extends Controller { ........... public function actionCreatewidget(){ return $this ->render( 'hellowidget' ); } ........... } ?> |
View: site/hellowidget.php
widget里面跟个数据传参
1 2 3 4 5 | <?php use app\components\HelloWidget; ?> // 传递参数 <?= HelloWidget2::widget([ 'message' => ' Yii2.0' ]) ?> |
OUTPUT
Welcome Yii2.0