Yii中创建自己的Widget实例


Posted in PHP onJanuary 05, 2016

本文实例讲述了Yii中创建自己的Widget实现方法。分享给大家供大家参考,具体如下:

这里以一个随机广告图片为例说明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 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'); ?>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
php auth_http类库进行身份效验
Mar 19 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
不重新编译PHP为php增加openssl模块的方法
Jun 14 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
PHP入门之常量简介和系统常量
May 12 PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 PHP
php 删除cookie方法详解
Dec 01 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
Aug 01 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
PHP CURL使用详解
Mar 21 PHP
php实现购物车功能(上)
Jul 23 #PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 #PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 #PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 #PHP
在WordPress中使用wp_count_posts函数来统计文章数量
Jan 05 #PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 #PHP
简单的php+mysql聊天室实现方法(附源码)
Jan 05 #PHP
You might like
php 魔术方法详解
2014/11/11 PHP
PHP多文件上传类实例
2015/03/07 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
python实现读取命令行参数的方法
2015/05/22 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
python中的数据结构比较
2019/05/13 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Python执行时间的几种计算方法
2020/07/31 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
应届生程序员求职信
2013/11/05 职场文书
给医院的感谢信
2015/01/21 职场文书
实施意见格式范本
2015/06/05 职场文书
小组组名及励志口号
2015/12/24 职场文书