超级计算机囧囧囧's Archivers

From admin on 2012-01-19 20:59:00

Yii中自定义Widget

1. 调用Widget
<?php $this->widget('WidgetName'); ?>
或者
<?php $widget=$this->beginWidget('path.to.WidgetClass'); ?>
...可能会由小物件获取的内容主体...
<?php $this->endWidget(); ?>
也可以传参到Widget类
<?php $userId = 1; ?>
<?php $this->widget('WidgetName',array('userId'=>$userId)); ?>
参数userId自动映射到Widget类的同名属性,所以在定义Widget时,别忘记了声明该属性。

2. 创建Widget

自定义Widget类要继承CWidget,覆盖方法run
<?php
class MyWidget extends CWidget {
public function init() {
// 此方法会被 CController::beginWidget() 调用
}
public function run() {
// 此方法会被 CController::endWidget() 调用
}
}
?>
例子:
<?php class HelloWidget extends CWidget {
public function run() {
$word = 'hello';
$this->render('hello',array(
"word"=>$word,
));
}
}
?>
存储到protected\components\HelloWidget.php

对应的view文件可能的内容如下:
<?php echo $word; ?>
存储到protected\components\views\hello.php

3. 调用该Widget
<?php $this->widget('HelloWidget'); ?>

查看完整版本: Yii中自定义Widget

Tags:


©超级计算机囧囧囧