`
fantaxy025025
  • 浏览: 1313306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Yii_Widget_how_to_use_使用

 
阅读更多
Yii_Widget_how_to_use_使用

1. 调用Widget
Php代码  收藏代码
  1. <?php  $this ->widget( 'WidgetName' ); ?>  

或者
Php代码  收藏代码
  1. <?php  $widget = $this ->beginWidget( 'path.to.WidgetClass' ); ?>  
  2. ...可能会由小物件获取的内容主体...  
  3. <?php $this ->endWidget(); ?>  


也可以传参到Widget类
Php代码  收藏代码
  1. <?php  $userId  = 1; ?>  
  2. <?php $this ->widget( 'WidgetName' , array ( 'userId' => $userId )); ?>  

参数userId自动映射到Widget类的同名属性,所以在定义Widget时,别忘记了声明该属性。

2. 创建Widget
自定义Widget类要继承CWidget,覆盖方法run
Php代码  收藏代码
  1. <?php  
  2. class  BannerMagic  extends  CWidget {  
  3.     public   function  run(){  
  4.     }  
  5. }  

或者:
Php代码  收藏代码
  1. class  MyWidget  extends  CWidget {  
  2.     public   function  init() {  
  3.         // 此方法会被 CController::beginWidget() 调用   
  4.     }  
  5.      public   function  run() {  
  6.         // 此方法会被 CController::endWidget() 调用   
  7.     }  
  8. }  

下面是是BannerMagicWidget实现
Php代码  收藏代码
  1. <?php  class  BannerMagicWidget  extends  CWidget {  
  2.    public   function  run() {  
  3.      $random  = rand(1,3);  
  4.      if  ( $random  == 1) {  
  5.        $advert  =  "advert1.jpg" ;  
  6.      }  else   if  ( $random  == 2) {  
  7.        $advert  =  "advert2.jpg" ;  
  8.      }  else  {  
  9.        $advert  =  "advert3.jpg" ;  
  10.      }   
  11.      $this ->render( 'bannermagic' , array (  
  12.        "advert" => $advert ,  
  13.      ));  
  14.    }  
  15. }  

存储到protected\components\BannerMagicWidget.php

对应的view文件可能的内容如下:
Php代码  收藏代码
  1. <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代码  收藏代码
  1. <?php  $this ->widget( 'BannerMagicWidget' ); ?>  

 

大部分来源:http://koda.iteye.com/blog/1134606,有改动和增加。

 

分享到:
评论

相关推荐

    yii-1.1.4.r2429.zip_mvc php_php yii_yii 1.1.4.rar_yii mvc_yii1.1

    "yii-1.1.4.r2429" 和 "yii_1.1.4.rar" 文件很可能是这个版本的框架源码或安装包,方便开发者下载和使用。 "MVC_php" 和 "yii_mvc" 标签表明了该资源与 MVC 设计模式在 PHP 环境下的应用密切相关,特别是通过 Yii ...

    yii 自定义widget地址联动

    在Yii中,Widget(小部件)是一种可重用的代码组件,可以方便地在视图层进行页面元素的组织和渲染。自定义Widget是扩展Yii功能和提高代码复用性的重要方式。本文将深入探讨如何在Yii框架中实现自定义Widget以及实现...

    yii-basic-app-admin-LTE 0.5 _cotton3jv_basic_yii_源.zip

    【标题】"yii-basic-app-admin-LTE 0.5 _cotton3jv_basic_yii_源.zip" 提供的是一个基于Yii框架构建的基础管理界面应用,采用了AdminLTE模板,版本为0.5,由用户"cotton3jv"创建。这个压缩包包含了该应用的源代码,...

    yii框架下的yii_blog 博客系统

    在这个"yii_blog 博客系统"中,你将学习到如何使用Yii框架来搭建一个简单的博客平台。 首先,Yii框架的核心特性包括MVC(Model-View-Controller)设计模式、主动记录(ActiveRecord)模式、缓存管理、身份验证和...

    Yii_PHP_框架源码分析.pdf

    Yii_PHP_框架源码分析 Yii是一个基于PHP语言的开源Web应用框架,提供了许多便捷的功能和工具来帮助开发者快速构建Web应用程序。本文主要对Yii框架的源码进行分析,探究其内部机制和实现原理。 1. 启动机制 Yii...

    Yii2_Aliyun_OSS_______Yii2_阿里云_OSS_yii2-aliyun-oss.zip

    Yii2_Aliyun_OSS_______Yii2_阿里云_OSS_yii2-aliyun-oss

    Yii_PHP_框架分析

    在这个文件中,首先定义了 `YII_DEBUG` 变量以开启或关闭调试模式,然后通过 `require_once()` 包含 `yii.php` 文件,这引入了全局类 `Yii`,它是 `YiiBase` 的子类。`Yii::createWebApplication()` 被用来创建并...

    yii-1.1.0.r1700.zip_yii_yii1.0 model结构

    `yii-1.1.0.r1700.zip` 是Yii 1.1版本的一个特定修订版,`yii_yii1.0 model结构` 提示我们这次的重点是探讨模型(Model)的架构。 在Yii框架中,MVC(Model-View-Controller)设计模式是核心组成部分。模型(Model...

    yii_rapid_application_development_hotshot.zip

    《Yii 快速应用开发实战》是针对PHP开发者的一本技术书籍,主要聚焦于使用Yii框架进行高效的应用程序开发。Yii是一个高性能、组件化的PHP框架,适用于开发Web 2.0应用程序。通过这本书,读者可以深入理解Yii的核心...

    Yii_RedisCache

    在 Yii 应用程序中,你可以像使用其他缓存组件一样使用 Redis。例如,存储和获取数据: ```php $cache = \Yii::$app-&gt;cache; $data = $cache-&gt;get('my_key'); if ($data === false) { $data = //... 计算或获取...

    Yii_权威指南(阅).pdf

    - **标题**:“Yii_权威指南(阅).pdf” 表明这是一份关于Yii框架的专业指南文档。 - **描述**:该文档是基于官方中文手册编写的,并结合了《The Definite Guide to Yii》的内容进行了补充翻译。此外,还校正了原中文...

    Yii_权威指南

    - 支持使用 widget 皮肤,增强了 UI 设计灵活性。 - 引入了可扩展的 form builder,提升了表单创建的便捷性。 - 改进了关联 ActiveRecord 查询的默认加载方式。 - 增加了对表前缀的支持。 - 发布了一系列新的...

    yii_guide_1.1.8

    ### Yii 框架概述与关键技术点解析 #### 一、引言 Yii 是一个高性能的 PHP 框架,适用于开发 Web 应用程序。它不仅提供了丰富的功能集,而且设计灵活,易于扩展。本篇文章将根据提供的文档标题、描述、标签以及部分...

    yii-basic-app-admin-LTE 0.5 _@yml12377[疑问]_cotton3jv_basic_yii_源

    在这个"yii-basic-app-admin-LTE 0.5 _@yml12377[疑问]_cotton3jv_basic_yii_源"中,我们可以看到它是一个学习资源,可能是一个完整的课程,专注于教授如何使用Yii框架和AdminLTE来构建后台管理系统。"@yml12377...

    基于YII_的BLOG开发实践

    - **Scaffolding**:使用Yii的Gii工具自动生成代码,如模型、控制器和视图。这对于快速开发具有标准功能的模块非常有用。 - **认证用户**:实现用户认证系统,包括登录、注销和权限管理。Yii提供了强大的身份验证...

    yii1.1_application_development_cookbook_code

    11. **性能优化**:探讨如何通过配置和代码优化提升应用性能,如使用YII_DEBUG环境变量进行调试,以及开启Gzip压缩。 12. **安全实践**:讲解防止SQL注入、XSS攻击和CSRF(跨站请求伪造)的方法,确保应用的安全性...

    Yii 自定义Widget Portlet

    在Yii中,Widget是可重用的代码组件,能够帮助开发者快速构建UI(用户界面)。Portlet是Yii中一种特殊的Widget,常用于展示可定制的小部件,如侧边栏、导航菜单等。 自定义Widget Portlet的知识点主要涵盖以下几个...

    yii_1.1.7源程序文件

    Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

    yii_swoole_task

    yii_swoole_task在YII框架中结合了swoole 的task 做了异步处理。本例中 主要用到1、protected/commands/ServerCommand.php 用来做server。2、protected/event/下的文件 这里是在异步中的具体实现。客户端调用参照 ...

Global site tag (gtag.js) - Google Analytics