Yii 使用Widge面面观

简介: 我们可以把Widget视为一个嵌入到控制器管理 的视图中的微控制器,其实就是.net框架中的用户控件,或者类似于.net MVC中的子视图。与controller相比较,微件没有既没有动作,也没有过滤器。

我们可以把Widget视为一个嵌入到控制器管理 的视图中的微控制器,其实就是.net框架中的用户控件,或者类似于.net MVC中的子视图。controller相比较,微件没有既没有动作,也没有过滤器。

Yii 手册中提到Widget拥有自己的视图。

第一种方法 使用beginWidget 和endWidget

第二种方法 使用Widget('类名字')

如:

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

自定义Widget:

继承 CWidget 以及重载它的init() 和 run() 方法,可以定义一个新的组件:

挂件的使用

面包屑导航

第一步 声明属性

One can define a property "breadcrumbs" in the base controller class and assign it to the widget in the layout, like the following: 
你可以定义一个breadcrumbs属性并且在布局文件中指派给(网站)基础控制器插件,如下所示:

$this->widget('zii.widgets.CBreadcrumbs', array(
   
'links'=>$this->breadcrumbs,
));

第二步 设置属性

Then, in each view script, one only needs to assign the "breadcrumbs" property as needed.
于是乎,你需要时,只需要在每个视图脚本中,指定breadcrumbs属性(就可以显示出网页导航了).
以上是官方提供的文档文件的介绍.
下面介绍视图文件中写法:

$this->breadcrumbs=array(

      'Users'=>array('index'),

      'Create',
     
// 形式 :  'key' =>'value'  key的位置相当于最后显示出来的a标签内的名字, value则相当于a标签的href属性.
     
// 'Create'表示当前页  故没有设置链接.
);
其他挂件

 参考

http://www.php100.com/manual/yii/CWidget.html#__construct-detail

目录
相关文章
|
2月前
|
设计模式 前端开发 PHP
PHP框架详解 - CodeIgniter 框架
PHP框架详解 - CodeIgniter 框架
|
2月前
|
PHP 开发者
PHP框架中Laravel排名?
【7月更文挑战第2天】PHP框架中Laravel排名?
22 0
|
敏捷开发 存储 JavaScript
基于Vue框架的思源新闻发布平台设计与实现(论文+源码)_kaic
经过针对全校随机抽取的100名学生进行的研究发现,有约69%的学生,并不关心思源新闻,一些学生表示思源每天发生的大小事与他们无关。这项调查突显了需要提供一个能激发学生对思源校园新闻感兴趣的平台。因此本文为思源学院全院师生设计一个基于Vue框架的思源新闻发布平台,以解决校园新闻发布的不便利和信息化程度不高的问题。 本课题主要对基于Vue框架的思源新闻发布平台网站的设计与开发进行研究。论文首先描述了课题的研究背景、目的和意义,然后通过可行性分析和需求分析确定了系统开发方向。思源新闻发布平台主要采用了敏捷开发方法,通过不断迭代和反馈,不断完善系统功能和界面设计。在技术选型上,本系统采用了MySQL数
|
架构师 前端开发 JavaScript
EggJS 渐进式开发
EggJS 渐进式开发
156 0
|
前端开发 JavaScript 数据处理
Yii2.0框架的MVC架构是如何设计的?它的流程是什么样的?
Yii2.0框架的MVC架构是如何设计的?它的流程是什么样的?
132 0
|
缓存 PHP 开发者
MyCms 自媒体 CMS 系统 v3.3.1,支持 Swoole 热更新
MyCms 自媒体 CMS 系统 v3.3.1,支持 Swoole 热更新
182 0
MyCms 自媒体 CMS 系统 v3.3.1,支持 Swoole 热更新
|
SQL 存储 JSON
开发教程|如何使用APICloud AVM框架开发一个移动应用?
AVM框架拥有趋近于原生的编程体验,经过一年多的发展,已成为国内主流的多端开发框架之一。本文将梳理一位开发者的投稿,详细介绍如何使用APICloud的AVM框架开发一款应用。
303 0
|
移动开发 缓存 前端开发
使用APICloud开发app的性能提升实践
为什么说这个问题?首先我是一名前端开发者,使用过的开发方式有,APICloud、原生开发、自己混合打包开发。这些都是根据不同的业务需求,用不同的开发方式,有的只需要安卓开发的需求,有需要安卓和iOS开发的需求,还有一些要h5和安卓等等。根据这些就做了相应的研究。
218 0
使用APICloud开发app的性能提升实践
|
前端开发 关系型数据库 MySQL
Laravel 5.8简明教程
在这个面向初学者的教程中,我们将学习如何使用最新的PHP开发框架Laravel 5.8,来创建一个基于MySQL数据库的Web应用,实现联系人的增删改查功能。 如果希望快速掌握区块链应用的开发,推荐汇智网的区块链应用开发系列教程, 内容涵盖比特币、以太坊、eos、超级账本fabric和tendermint等多种区块链,以及 java、go、nodejs、python、php、dart等多种开发语言。
1695 0