Yii_Widget_how_to_use_使用
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() {
-
-
}
-
public
function
run() {
-
-
}
-
}
下面是是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
Widget视图的目录:
这里注意:widget类中也可以像controller一样使用视图,视图的位置:Widget类所在的目录/views/,不是在protected的iews下面。
官方文档真nnd晦涩,刚才我用中文也不容易表达:By default, widget
view files are located under the views
subdirectory of the directory
containing the widget class file.
结果看看源码才懂:
$className=get_class($this);
$class=new ReflectionClass($className);
$path = dirname($class->getFileName()).DIRECTORY_SEPARATOR.'views';
3. 调用该Widget
-
<?php
$this
->widget(
'BannerMagicWidget'
); ?>
大部分来源:http://koda.iteye.com/blog/1134606,有改动和增加。
分享到:
相关推荐
"yii-1.1.4.r2429" 和 "yii_1.1.4.rar" 文件很可能是这个版本的框架源码或安装包,方便开发者下载和使用。 "MVC_php" 和 "yii_mvc" 标签表明了该资源与 MVC 设计模式在 PHP 环境下的应用密切相关,特别是通过 Yii ...
在Yii中,Widget(小部件)是一种可重用的代码组件,可以方便地在视图层进行页面元素的组织和渲染。自定义Widget是扩展Yii功能和提高代码复用性的重要方式。本文将深入探讨如何在Yii框架中实现自定义Widget以及实现...
【标题】"yii-basic-app-admin-LTE 0.5 _cotton3jv_basic_yii_源.zip" 提供的是一个基于Yii框架构建的基础管理界面应用,采用了AdminLTE模板,版本为0.5,由用户"cotton3jv"创建。这个压缩包包含了该应用的源代码,...
在这个"yii_blog 博客系统"中,你将学习到如何使用Yii框架来搭建一个简单的博客平台。 首先,Yii框架的核心特性包括MVC(Model-View-Controller)设计模式、主动记录(ActiveRecord)模式、缓存管理、身份验证和...
Yii_PHP_框架源码分析 Yii是一个基于PHP语言的开源Web应用框架,提供了许多便捷的功能和工具来帮助开发者快速构建Web应用程序。本文主要对Yii框架的源码进行分析,探究其内部机制和实现原理。 1. 启动机制 Yii...
Yii2_Aliyun_OSS_______Yii2_阿里云_OSS_yii2-aliyun-oss
在这个文件中,首先定义了 `YII_DEBUG` 变量以开启或关闭调试模式,然后通过 `require_once()` 包含 `yii.php` 文件,这引入了全局类 `Yii`,它是 `YiiBase` 的子类。`Yii::createWebApplication()` 被用来创建并...
`yii-1.1.0.r1700.zip` 是Yii 1.1版本的一个特定修订版,`yii_yii1.0 model结构` 提示我们这次的重点是探讨模型(Model)的架构。 在Yii框架中,MVC(Model-View-Controller)设计模式是核心组成部分。模型(Model...
《Yii 快速应用开发实战》是针对PHP开发者的一本技术书籍,主要聚焦于使用Yii框架进行高效的应用程序开发。Yii是一个高性能、组件化的PHP框架,适用于开发Web 2.0应用程序。通过这本书,读者可以深入理解Yii的核心...
在 Yii 应用程序中,你可以像使用其他缓存组件一样使用 Redis。例如,存储和获取数据: ```php $cache = \Yii::$app->cache; $data = $cache->get('my_key'); if ($data === false) { $data = //... 计算或获取...
- **标题**:“Yii_权威指南(阅).pdf” 表明这是一份关于Yii框架的专业指南文档。 - **描述**:该文档是基于官方中文手册编写的,并结合了《The Definite Guide to Yii》的内容进行了补充翻译。此外,还校正了原中文...
- 支持使用 widget 皮肤,增强了 UI 设计灵活性。 - 引入了可扩展的 form builder,提升了表单创建的便捷性。 - 改进了关联 ActiveRecord 查询的默认加载方式。 - 增加了对表前缀的支持。 - 发布了一系列新的...
### Yii 框架概述与关键技术点解析 #### 一、引言 Yii 是一个高性能的 PHP 框架,适用于开发 Web 应用程序。它不仅提供了丰富的功能集,而且设计灵活,易于扩展。本篇文章将根据提供的文档标题、描述、标签以及部分...
在这个"yii-basic-app-admin-LTE 0.5 _@yml12377[疑问]_cotton3jv_basic_yii_源"中,我们可以看到它是一个学习资源,可能是一个完整的课程,专注于教授如何使用Yii框架和AdminLTE来构建后台管理系统。"@yml12377...
- **Scaffolding**:使用Yii的Gii工具自动生成代码,如模型、控制器和视图。这对于快速开发具有标准功能的模块非常有用。 - **认证用户**:实现用户认证系统,包括登录、注销和权限管理。Yii提供了强大的身份验证...
11. **性能优化**:探讨如何通过配置和代码优化提升应用性能,如使用YII_DEBUG环境变量进行调试,以及开启Gzip压缩。 12. **安全实践**:讲解防止SQL注入、XSS攻击和CSRF(跨站请求伪造)的方法,确保应用的安全性...
在Yii中,Widget是可重用的代码组件,能够帮助开发者快速构建UI(用户界面)。Portlet是Yii中一种特殊的Widget,常用于展示可定制的小部件,如侧边栏、导航菜单等。 自定义Widget Portlet的知识点主要涵盖以下几个...
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
yii_swoole_task在YII框架中结合了swoole 的task 做了异步处理。本例中 主要用到1、protected/commands/ServerCommand.php 用来做server。2、protected/event/下的文件 这里是在异步中的具体实现。客户端调用参照 ...