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 相关文章推荐
PHP安全防范技巧分享
Nov 03 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 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
DC动漫人物排行
2020/03/03 欧美动漫
php下批量挂马和批量清马代码
2011/02/27 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
ES6关于Promise的用法详解
2018/05/07 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
python检查指定文件是否存在的方法
2015/07/06 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
实例讲解Python3中abs()函数
2019/02/19 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
安全施工标语
2014/06/07 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
举起手来观后感
2015/06/09 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
AngularJS实现多级下拉框
2022/03/25 Javascript