本教程教你如何自定义widget,widget是view中能被重用的代码块。
创建widget的步骤:
1 继承yii\base\Widget.
2 实现yii\base\Widget::init() 和 yii\base\Widget::run()方法
3 注意下面代码是如何传递参数的
@ 创建widget
首先在项目根目录创建 components 目录,然后新建一个 HelloWidget 类。使用此widget,将会展示一条带有username的欢迎信息。如下
<?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
<?php .......... class SiteController extends Controller { ........... public function actionCreatewidget(){ return $this->render('hellowidget'); } ........... } ?>
View: site/hellowidget.php
widget里面跟个数据传参
<?php use app\components\HelloWidget; ?> // 传递参数 <?= HelloWidget2::widget(['message' => ' Yii2.0']) ?>
OUTPUT
Welcome Yii2.0