Yii中创建自己的Widget
2019独角兽企业重金招聘Python工程师标准>>>
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="data:images/adverts/<?php echo $advert; ?>" alt="whatever" />
存储到protected\components\views\bannermagic.php
3. 调用该Widget
<?php $this->widget('BannerMagicWidget'); ?>
转载于:https://my.oschina.net/guomingliang/blog/297181
Yii中创建自己的Widget相关推荐
- yii中常见问题(2)
如何显示静态页 重写actions 'help'=>array( 'class'=>'CViewAction', 'basePath'=>'help', //指定目录名 'defau ...
- ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...
- Flutter 中 stateless 和 stateful widget 的区别[Flutter专题60]
Flutter 中 stateless 和 stateful widget 的区别 介绍 要在 Flutter 中构建任何应用程序,我们必须创建一个小部件类,它是 Flutter 应用程序的构建块.F ...
- 如何在 Flutter 中禁用默认的 Widget 飞溅效果
如何在 Flutter 中禁用默认的 Widget 飞溅效果 默认情况下,许多 Flutter Material Design 小部件在被选中时会显示飞溅效果. 这适用于IconButton,InkW ...
- yii 1.4 constant.php,yii 中设置提示成功信息,错误提示信息,警告信息
方法一: Yii::app()->user->setFlash('success',"Data saved!"); 设置键值名为success的临时信息.在getFla ...
- qt中创建控件布局以及删除原有布局和控件
引言 当根据数据来创建控件并布局时,如果数据更新,那么之前创建的控件便需要删除后重新创建布局.该文主要说明将原来的布局和控件删除,重新创建并布局. 示例 先看一下ui文件: 下面是实现代码: void ...
- 中点击按钮新建widget_如何在iOS14中创建堆叠小组件?
在iOS14中,苹果对iPhone和iPad的主屏幕进行了一些前所未有的的改变.它引入了一个叫"主屏幕小部件"的概念. 在以前的界面上,可以从左边的widgets访问小组件.然而, ...
- 使用Kotlin在Android Studio中创建井字游戏
井字游戏也被称为"Noughts和crosses".它是两个玩家最普遍的纸笔游戏之一. 它主要由年幼的孩子放置,但很多时候,你也可以看到成年人玩这个来切断无聊.这个游戏非常方便,可 ...
- wordpress创建_十分钟即可在WordPress中创建动态小部件
wordpress创建 Have you tried to find functionality for a specific purpose in WordPress but failed to f ...
最新文章
- 一招一式攻克linux(五)
- linux 修改 ko文件内核版本号
- GlobalAlloc全局内存的使用
- 原理篇 | 推荐系统之矩阵分解模型
- c 运行js脚本语言,Javascript脚本语言
- mysql恢复语句报错_php对于mysql恢复数据的时候,只能恢复一条!然后就会报错!但把sql语句直接贴到数据库里面是可以执行的!...
- PHP学习笔记--015 PHP 随笔
- 单生产者/单消费者 的 FIFO 无锁队列
- 同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式
- 索引缓存_如何重置您的Google桌面索引缓存
- Java--中文转换拼音,jpinyin-1.0.jar
- Ollydbg 1.10's plugin LsMem2CAry.dll
- luffy-16/订单表设计,立即付款接口/前端,支付成功get回调用户展示,支付成功post回调修改订单状态
- H.264的两个概念:DC系数和AC系数
- 微信加密聊天工具(持续开发中)
- 论文版「ChatGPT」来了!看论文问问题可同时进行,网友:看文献更省时了|开源...
- 文件名称重命名后,一键恢复的技巧
- ValueError: attempt to get argmax of an empty sequence
- 计算机应用基础00018课件
- 《互联网时代》 第六集 迁徙