yii2——自定义widget

时间:2024-01-16 08:24:56

如何使用yii2框架自定义widget

本教程教你如何自定义widget,widget是view中能被重用的代码块。
创建widget的步骤:
1 继承yii\base\Widget.
2 实现yii\base\Widget::init() 和 yii\base\Widget::run()方法
@ 创建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

<?php
use app\components\HelloWidget;
?>
<?= HelloWidget2::widget(['message' => ' Yii2.0']) ?>

OUTPUT

Welcome Yii2.0