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 相关文章推荐
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 PHP
PHP教程 变量定义
Oct 23 PHP
PHP file_exists问题杂谈
May 07 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
php四种基础算法代码实例
Oct 29 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
PHP调用其他文件中的类
Apr 02 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 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
大师制作的中短波矿石收音机
2020/04/02 无线电
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
JS实现手风琴特效
2020/11/08 Javascript
django重新生成数据库中的某张表方法
2019/08/28 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
五一服装活动方案
2014/01/11 职场文书
低碳生活倡议书
2014/04/14 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
2014年销售部工作总结
2014/12/01 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
2015年社区工作总结
2015/04/08 职场文书
学生检讨书范文
2019/06/24 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
导游词之临安白水涧
2019/11/05 职场文书
table不让td文字溢出操作方法
2022/12/24 HTML / CSS