tann1013

tann1013

这家伙有点懒,还没写个性签名!

  • 财富值5
  • 威望值0
  • 总积分5

个人信息

  • 回答了问题 widget问题

    首先你得知道widget是干什么的,小挂件可以由自己的view,我们可以自由的定义,
    例如:在如下地方建/home/tann/website/dev_yii/shop/protected/widget/test,
    我们可以把网站的一些经常用到的重复性的东西提取出来,做成widget,提高复用性。
    然后建文件/home/tann/website/dev_yii/shop/protected/widget/test/testWidget.php
    <?php
    /**

    • Created by PhpStorm.
    • User: tann
    • Date: 14-8-13
    • Time: 上午10:45
      */

    /**

    • test widget
    • widget类的使用类似Controller,也可以有自己的view
      */
      class registerWidget extends CWidget
      {
      public function init(){
       //当视图中执行$this->beginWidget()时候会执行这个方法
       //可以在这里进行查询数据操作
       echo '<br>testWidget.init()'.'<br>';
      

      }
      public function run(){

       //当视图中执行$this->endWidget()的时候会执行这个方法
       //可以在这里进行渲染试图的操作,注意这里提到的视图是widget的视图
       //注意widget的视图是放在跟widget同级的views目录下面,例如下面的视图会放置在
       //  /protected/widget/test/views/test.php
       echo 'testWidget.run()'.'<br>';
       $this->render('test', array(
           'str'=>'WIDGET视图变量',
       ));
      

      }
      }
      然后,在视图位置建文件
      /home/tann/website/dev_yii/shop/protected/widget/test/views/test.php

    widget/test/views/test.php
    <?php
    echo $str;
    ?>

    这样我们就定义好了一个widget
    在控制器的视图层做如下调用:
    <?php
    $this->widget('application.widget.test.testWidget'); //挂件类的路径
    /
    $this->beginWidget('application.widget.test.testWidget');
    $this->endWidget('application.widget.test.testWidget');
    /
    ?>

    这样我们看到的效果
    testWidget.int()
    testWidget.run()
    widget/test/views/test.php WIDGET视图变量

  • 发表了说说
    hello,yiichina!
实习生 等级规则
5/20
资料完整度
10/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

1