文档章节

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

 小田天
发布于 2016/11/17 11:51
字数 416
阅读 64
收藏 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
博文 79
码字总数 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
366
0
在Yii2.0版本中中,如何从控制器里面传递变量到布局文件layouts里的模板中

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

hfreeze
07/02
0
0
至关重要的DOJO Widget 生命周期

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

triankg
2015/02/03
0
0
Dojo Mobile 1.7 入门

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

IBMdW
2012/12/18
4K
8
译 | 关于Flutter,你想知道的都在这里了!

本文出自微信公众号:前端之巅 作者|Mike Bluestein 译者|胡红星 编辑|覃云 Flutter 是 Google 开源的跨平台移动开发框架。 它允许从单个代码库为 iOS 和 Android 构建高性能,美观的应用...

程序师
07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JVM垃圾回收算法

1、新生代与老年代 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ) 和 老年代 ( Old )。 新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor 和 To Survivor。 Java 中的堆...

初雪之音
18分钟前
0
0
主流的消息队列MQ比较,详解MQ的4类应用场景

目前主流的MQ 1.ZeroMQ 号称最快的消息队列系统,尤其针对大吞吐量的需求场景。 扩展性好,开发比较灵活,采用C语言实现,实际上只是一个socket库的重新封装,如果做为消息队列使用,需要开发...

游人未归
今天
3
0
React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
今天
4
0
Jenkins使用

clean install -Dmaven.test.skip=true 系统设置 全局工具配置 其他的配置类似 构建项目配置

1713716445
今天
2
0
多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部