文档章节

教你在Yii2.0框架中如何创建自定义小部件

 小田天
发布于 2016/11/17 11:51
字数 416
阅读 62
收藏 0
点赞 0
评论 0

来源:How to create custom widget in Yii2.0 Framework

本教程将帮助您创建自己的自定义小部件在 yii framework 2.0。部件是可重用的模块和用于视图。

创建一个小部件,需要继承 yii\base\Widget,覆盖重写 yii\base\Widget::init() 和/或 yii\base\Widget::run() 方法.

注意:在yii 1.x,我们将使用 widgets 的文件夹。

在 Yii2.0 创建自己的小部件

首先创建一个名为 widgets 的文件夹在项目根目录。现在在 widgets文件夹内创建一个“HelloWidget”类 。使用这个小部件,我们将与用户名一起显示欢迎消息。请参见下面的代码来创建一个小部件类。

<?php
namespace app\widgets;

use yii\base\Widget;
use yii\helpers\Html;

class HelloWidget extends Widget
{
    public $message;
    
    public function init()
    {
        parent::init();
        if($this->message===null){
            $this->message= 'Welcome User';
        }else{
            $this->message= 'Welcome '.$this->message;
        }
    }
    
    public function run()
    {
        return Html::encode($this->message);
    }
}
?>
init() - 应该包含小部件的属性,
run()  - 应该包含小部件的渲染结果

HelloWidget”这个类是我们的自定义小部件。“app\widgets”是这个类的名称空间,“HelloWidget”是一个类名。使用命名空间和类名,我们可以访问这个小部件应用,即‘app\widgets\HelloWidget’。

在Yii2.0显示小部件内容

在视图代码中使用 app\widgets\HelloWidget 添加小部件应用。看到以下代码如何被称为小部件类。

控制器::SiteController.php

<?php
..........
class SiteController  extends Controller
{
    ...........
    public function actionCreatewidget()
    {
        return $this->render('hellowidget');
    }
    ...........
}
?>

视图: site/hellowidget.php

<?php
use app\widgets\HelloWidget;
?>
<?= HelloWidget::widget(['message' => ' Yii2.0']) ?>

输出

Welcome Yii2.0

我认为它可能对你有帮助。

译者注:本文基于原文略有改动。

本文转载自:https://getyii.com/topic/174

共有 人打赏支持
粉丝 0
博文 78
码字总数 49841
作品 0
怀化
在 Apache Wink 中使用 Dojo Grid 和 Dojo Tree 小部件

转自:http://www.ibm.com/developerworks/cn/web/wa-dojotree/index.html?ca=drs- 简介 REST 是一种用于分布式超媒体系统(比如 World Wide Web)的软件架构。资源,或者特定信息来源是 RE...

小卒过河 ⋅ 2011/11/17 ⋅ 0

YII2.0之窗体小部件

在工作中用到YII2框架,之前对Yii的Widgets这个不太理解,也就没有用上。最近在查看YII2的英文指南的时候,终于弄明白了是怎么一回事。 举个简单的例子,如果在做后台开发的时候,大部分页面...

xtceetg ⋅ 2017/02/16 ⋅ 0

在Yii2.0版本中中,如何从控制器里面传递变量到布局文件layouts里的模板中

关于在Yii1.x的版本中变量的传递可以查看这个:在Yii框架中,控制器如何传递变量给layouts里的模板,下面说说在Yii2.0中的实现方法。 在Yii2.0中,view模板文件里面的$this已经不是对应的控制...

hfreeze ⋅ 2016/04/16 ⋅ 0

Dojo Mobile 1.7 入门

最新版的移动 Web 开发框架 Dojo Mobile 1.7,是 Dojo Toolkit 的一个扩展。本文将使您了解如何从主干网址下载 Dojo 1.7,以及如何在您的应用程序中使用 Dojo Mobile。您还将探索它提供的各种...

IBMdW ⋅ 2012/12/18 ⋅ 8

至关重要的DOJO Widget 生命周期

官方相关的文档链接 http://dojotoolkit.org/documentation/tutorials/1.10/understanding_widgetbase/ 题记: 最近在了解DOJO 的时候, 自定义了一个类继承BorderContainer 开始的时候我之间...

triankg ⋅ 2015/02/03 ⋅ 0

Yii2.0 RESTful API快速搭建教程

Yii2 RESTful API 实战教程 这篇说下开发 吧,使用 API模式 安装Yii2.0 通过 Composer 安装 这是安装Yii2.0的首选方法。如果你还没有安装 ,你可以按照这里的说明进行安装。 安装完 ,运行下...

botkenni ⋅ 05/03 ⋅ 0

Android开发指南-框架主题-用户界面

用户界面User Interface 关键类 View ViewGroup Widget classes 在一个Android应用中,用户界面是由View 和ViewGroup对象构建的。View与ViewGroup都有很多种类,而它们都是View类的子类。 Vi...

JavaGG ⋅ 2010/03/24 ⋅ 0

【Animations】创建一个自定义过渡动画(11)

原文 概要 自定义转换使您能够创建任何内置转换类都无法提供的动画。例如,您可以定义自定义转场,将文本和输入字段的前景色变为灰色,以指示在新屏幕中禁用字段。这种更改有助于用户查看您禁...

lichong951 ⋅ 05/28 ⋅ 0

Dojo学习笔记(二十):理解_WidgetBase

如果你使用过dojo早期的版本,你可能对dijit/Widget模块熟悉。虽然dijit/Widget目前仍然存在,但是它经继承自WidgetBase。在你从底层开始创建自定义小部件的时候,目前最好是直接继承WidgetB...

技术小胖子 ⋅ 2017/11/07 ⋅ 0

如何开发主控台部件

大概思路: 开发一个主控台的小部件,嵌入在主控台界面中。 用户登录,打开了K/3 Cloud之后,就会加载主控台界面,也会同时加载主控台界面部件。 开发主控台界面插件,在界面加载的同时,打开...

51GT ⋅ 2017/09/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部