默认情况下, widget 的视图文件位于包含了widget文件的 views 子目录之下。这些视图可以通过调用 CWidget::render()渲染,这一点和控制器很相似。唯一不同的是,widget的视图没有布局文件支持。 
同时,view 文件中的 $this 指的是widget 实例而不是 controller 实例。

一.创建Widget

class testWidget extends CWidget

{

public function init()

{

//当视图中执行$this->beginWidget()时候会执行这个方法

//可以在这里进行查询数据操作

}

public function run()

{

//当视图中执行$this->endWidget()的时候会执行这个方法

//可以在这里进行渲染试图的操作,注意这里提到的视图是widget的视图

    //注意widget的视图是放在跟widget同级的views目录下面,例如下面的视图会放置在

    //  /protected/widget/test/views/test.php

$this->render('test', array(

'str'=>'WIDGET视图变量',

));

}

}

二.Widget的视图文件

views视图test.php 引用此变量数据

...

<?php echo $str;?>

....

三.在controll中的views视图中 调用Widget

如果你在/protected/widget/test/下建立了一个名为“testWidget.php”的widget。

在视图中调用需要这样写:

A.

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

B.

<?php $this->beginWidget('application.widget.test.testWidget'); ?>
...可能小部件需要用到这里主体内容...
<?php $this->endWidget(); ?>

C.

<?php $userId = 1; ?>

<?php $this->widget('WidgetName',array('userId'=>$userId)); ?>

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

Yii 之widget的更多相关文章

  1. Yii 通过widget小物件生成添加表单

    通过widget小物件创建添加商品的表单 视图里,表单以endWidget();?>结束 最终效果: 把表单提交过来的信息保存到数据库中去. 补充要点: 密码表单: <?php echo ...

  2. Yii GridView::widget

    GridView::widget文档 http://demos.krajee.com/grid GridView::widget([ 'dataProvider' => $dataProvide ...

  3. yii框架widget和注册asset的例子

    yii框架是一个基于组件的框架,这样代码的重用性就非常的高,如我们想在网站的多个地方调用编辑器,这样我们就可以自定义一个组件,来供我们调用使用 下面以Ueditor组件为例: 1.下载ueditor到 ...

  4. Yii widget使用

    关于widgets,他们在yii中的关系如下 system.web.widgets 系统自带最基本的widget zii.widgets 是基本扩展 zii.widgets.grid 是基本扩展的重要 ...

  5. yii2——自定义widget

    参考资料:http://www.bsourcecode.com/yiiframework2/how-to-create-custom-widget-in-yii2-0-framework/   如何使 ...

  6. yii 核心类classes.php详解(持续更新中...)

    classes.php在yii运行的时候将被自动加载,位于yii2文件夹底下. <?php /** * Yii core class map. * * This file is automati ...

  7. yii2 widget示例

    <?php namespace app\components; use yii\base\Widget; use yii\helpers\Html; class RctReplyWidget e ...

  8. Yii framework 应用总结小窍门(转)

    1. Yii Framework] 如何获取当前controller的名称? 下面语句就可以获取当前控制器的名称了! Yii::app()->controller->id 2. yii 如 ...

  9. 【YII】Yii入门

    1. 入门博客 http://blog.csdn.net/zm2714/article/category/1359776/2 2. 创建运行demo http://blog.csdn.net/zhou ...

随机推荐

  1. 主机安全扫描工具-- vuls

    https://vuls.io/ 一. 安装 系统管理员有责任定期去检查系统的弱点和更新软件, vuls 可以提供如下功能: 通知管理员机器有安全隐患 支持本地和远程扫描(需要有 ssh 权限) 可以 ...

  2. java获取当前文件路径的方法

    第一种: File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...

  3. 结合 RunLoop 和 Instrument 定位卡顿

    iOS 应用,丝般顺滑的理想情况就是 60FPS (对于 iPad Pro 是 240FPS),即在 16ms 之内完成一次渲染.如果找到在每次渲染花费了多久,究竟做了什么事情,那么就可以进行针对性的 ...

  4. 逆向工程生成的Mapper.xml以及*Example.java详解

    逆向工程生成的接口中的方法详解 在我上一篇的博客中讲解了如何使用Mybayis逆向工程针对单表自动生成mapper.java.mapper.xml.实体类,今天我们先针对mapper.java接口中的 ...

  5. rabbitmq系列四 之路由

    1.路由 在上一个的教程中,我们构建了一个简单的日志记录系统.我们能够向许多接收者广播日志消息. 在本次教程中,我们向该系统添加一些特性,比如,我只需要严重错误(erroe级别)的部分日志打印到磁盘文 ...

  6. Git-基本操作(图文)

    场景一: 已经用git add 命令把文件加入到暂存区了,这个时候想退回怎么办? 添加文件到暂存区 :git add . 将单个文件撤回到工作区:git rm --cached [文件路径] 将目录撤 ...

  7. 代码阅读——十个C开源项目

    1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连 ...

  8. Docker笔记:常用命令汇总

    Docker常用命令汇总 启动服务 [root@localhost ~]# service docker start Redirecting to /bin/systemctl start docke ...

  9. sklearn 绘制roc曲线

    from sklearn.metrics import roc_curve, auc import matplotlib as mpl import matplotlib.pyplot as plt ...

  10. jenkins自动化部署

    目录 typora-copy-images-to: pic Jenkins部署文档 一.安装环境 1.CentOs下安装JDK 2.CentOS安装Maven 3.CentOS安装git 4.Cent ...