文档章节

Yii中创建自己的Widget

freedonn
 freedonn
发布于 2014/08/01 15:50
字数 230
阅读 19
收藏 0

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 BannerMagic extends CWidget {
    public function run(){
    }
}

或者:

class MyWidget extends CWidget {
    public function init() {
        // 此方法会被 CController::beginWidget() 调用
    }
     public function run() {
        // 此方法会被 CController::endWidget() 调用
    }
}

下面是是BannerMagicWidget实现

<?php class BannerMagicWidget extends CWidget {
   public function run() {
     $random = rand(1,3);
     if ($random == 1) {
       $advert = "advert1.jpg";
     }  else if ($random == 2) {
       $advert = "advert2.jpg";
     }  else {
       $advert = "advert3.jpg";
     } 
     $this->render('bannermagic',array(
       "advert"=>$advert,
     ));
   }
}

存储到protected\components\BannerMagicWidget.php
对应的view文件可能的内容如下:

<img src="images/adverts/<?php echo $advert; ?>" alt="whatever" />

存储到protected\components\views\bannermagic.php
3. 调用该Widget
<?php $this->widget('BannerMagicWidget'); ?>  

本文转载自:http://koda.iteye.com/blog/1134606

freedonn

freedonn

粉丝 25
博文 258
码字总数 16565
作品 0
潍坊
程序员
私信 提问
YII2 少用的一些扩展 插件等功能 自定义操作按钮 时间插件_会点击不生效---原因可能是有的公司会对框架进行修改,影响到了, 自己下载的项目中可以正常使用 --网上很少有遇到这个问题的.

[ 'attribute' => 'status', 'label' => '状态', 'value' => function ($model) { return $model->status == 1 ? '开启' : '关闭'; }, ], [ 'class' => 'yiigridActionColumn', 'template' =......

兔子想飞
2018/05/23
0
0
kzeng_jack/yii2-app-kit

Yii2 Application Kit 这是基于Yii2 Starter Kit 和 Yii2 Advanced Template 的的Web 应用程序。 ##安装 开始之前 克隆代码仓库 git clone https://git.oschina.net/kzeng/yii2-app-kit.git......

kzeng_jack
2016/05/31
0
0
YII2 Select2插件使用小计

先给出文档的地址: https://www.yiiframework.com/extension/yii-select2 最近在看到很多网站给用户打标签,或者是多个下拉选择之后变成一个标签。觉得交互不错!调研发现有开源的yii-selec...

叫我哀木涕
2018/11/29
392
0
yii2分页扩展之实现跳转到具体某页

作者:白狼 出处:http://www.manks.top/yii2_linkpager_widget.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任...

白狼栈
2016/06/05
44
0
yii 利用 Pagination 做异步分页

1 php 后端 public function actionPage() { $data = User::find(); //User为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写 $pag...

bengozhong
2017/10/27
18
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx 快速安装详解

一、Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамбле...

网络小虾米
8分钟前
3
0
技术分享 | slave_relay_log_info 表认知的一些展开

作者:胡呈清 slave_relay_log_info 表是这样的: mysql> select * from mysql.slave_relay_log_info\G *************************** 1. row *************************** Number_of_lin......

爱可生
11分钟前
2
0
nginx配置http访问自动跳转到https

server {listen 80;server_name www.域名.com;rewrite ^(.*) https://$server_name$1 permanent;}server {listen 443;server_name www.域名.com;root /home/www;ssl on;......

很好亦平凡ms
11分钟前
2
0
SpreadJS:一款中国研发的类Excel开发工具,功能涵盖Excel的 95% 以上

Excel 作为一款深受用户喜爱的电子表格工具,借助其直观的界面、出色的计算性能、数据分析和图表,已经成为数据统计领域不可或缺的软件之一。 基于Excel对数据处理与分析的卓越表现,把Excel...

葡萄城技术团队
11分钟前
2
0
用javafx框架tornadofx做了个天气预报的程序

class WeatherApp : App(WeatherView::class)class WeatherView : View("十五天天气预报") { val weatherVM: WeatherViewModel by inject() val controller: WeatherController by......

oschina4cyy
15分钟前
2
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部