1. 调用Widget
1 <?=HotWidget::widget()?>
或者 将内容包含在H1标签中,页面中代码为:
也可以传参到Widget类
1 <?=PostWidget::widget(['limit' => 1, 'title' => 'More 文章'] );?>
参数limit , title 自动映射到Widget类的同名属性,所以在定义Widget时,别忘记了声明该属性。
2. 创建Widget
要创建一个窗口小部件,应该扩展类 yiiaseWidget或者是类yiiootstrapWidget。
那么需要重写 yiiaseWidget::init() 和 yiiaseWidget::run() 函数。
run()函数将返回渲染的结果。
init()函数将标准化小部件的属性。
或者,同时包括init 和 run:
1 <?php 2 namespace frontendwidgetsanner; 3 4 use Yii; 5 use yiiootstrapWidget; 6 7 class BannerWidget extends Widget 8 { 9 public $items = []; 10 11 public function init() 12 { 13 parent::init(); 14 ob_start(); 15 } 16 17 public function run() 18 { 19 $content = ob_get_clean(); 20 return "<h1>$content</h1>"; 21 } 22 }
要点
窗口小部件应该 -
要在MVC模式下创建。应该保持表现层在视图,逻辑在窗口小部件(widget)类。
设计成自包含的。最终开发人员应该能够将它设计到一个视图。