• 技术文章 >后端开发 >php教程

    Yii中创建自己的Widget实例_PHP

    2016-05-28 11:49:36原创252
    本文实例讲述了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文件可能的内容如下:

    代码如下:

    whatever


    存储到protected\components\views\bannermagic.php

    3. 调用该Widget

    代码如下:

    <?php $this->widget('BannerMagicWidget'); ?>

    希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:简单的php+mysql聊天室实现方法(附源码)_PHP 下一篇:解析WordPress中的post_class与get_post_class函数_PHP
    PHP编程就业班

    相关文章推荐

    • 或者用到的php代码 • 求指导学习php思路,该怎么解决 • dede首页生成有关问题,附带一个特效有关问题 • 求共享dedecms二次开发视频• PHP提交数据到mysql很奇怪的问题??????????????????????

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网