thinkPHP下的widget扩展用法实例分析

 更新时间:2015年12月26日 11:16:15   作者:释然me  
这篇文章主要介绍了thinkPHP下的widget扩展用法,结合实例形式分析widget扩展的具体使用技巧与注意事项,需要的朋友可以参考下

本文实例讲述了thinkPHP下的widget扩展用法。分享给大家供大家参考,具体如下:

Widget扩展用于在页面根据需要输出不同的内容,Widget扩展的定义是在项目的Lib\Widget目录下面定义Widget类库,例如下面定义了一个用于显示最近的评论的Widget:

位于Lib\Widget\ShowCommentWidget.class.php

Widget类库需要继承Widget类,并且必须定义render方法实现,例如:

render方法必须使用return返回要输出的字符串信息,而不是直接输出。

Widget也可以调用Widget类的renderFile方法,渲染模板后进行输出。

在项目的lib目录下建立widget目录,与action目录同级。

建立TestWidget.class.php:

class TestWidget extends Widget{
  public function render($data){
    //print_r($data);
    $data['id']=$data['id'];
    $data['info']=$data['info'];
    $content = $this->renderFile('index',$data);
    //print_r($content);
    return $content;
  }
}

在此目录下建立对应的Test文件夹,下面放$this->rendFile调用的html页面。

index.html  通过使用循环显示数据的信息

<div>
  这是widget调用的模板页面
  <foreach name="id" item="vo"> <span style="color:#ff0000">//注意:id对应与$data的键值</span>
    {$vo}
  </foreach>
  <br>
  <foreach name="info" item="vo"> <span style="color:#ff0000">//info对应于$data的键值</span>
    <foreach name="vo" item="v">
      {$v}
    </foreach>
  </foreach>
</div>

action方法:

IndexAction.class.php

代码如下:

class TestAction extends Action{
  public function index(){
    $info=array(array("1","AA","title"),array("2","BB","title2"));
    $this->assign("info",$info);
    $this->display();
  }
}

action调用的tpl中的html页面的为index.html

代码如下:

<div>
这个是test调用的action<br>
{:W('Test',array("id"=>array("ID","name","title"),"info"=>$info))} <span style="color:#cc0000">//传递给TestWidget.class.php 的参数,要以array格式传递</span>
</div>

运行IndexAction.class.php

页面显示如下:

这样就把show.html中的内容包含进来了

name什么时候用widgte呢?

widget通常是一些封装好了的JS效果组件,直接调用‘加入参数就可以得到一些效果,例如,TAB菜单、旋转木马、图片轮播等交互效果 

比如网站的菜单栏。右边常不更新的栏目之类的…

方便多次调用,比如在页面上左侧显示一个新闻列表,每个页面如果都调用这个列表,是不是得在每个控制器里写一遍相同的代码,不累么,用widget可能只需要写一次,然后模板中多次使用

希望本文所述对大家基于thinkPHP框架的PHP程序设计有所帮助。

相关文章

  • 解决laravel id非自增 模型取回为0 的问题

    解决laravel id非自增 模型取回为0 的问题

    今天小编就为大家分享一篇解决laravel id非自增 模型取回为0 的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • thinkphp分页实现效果

    thinkphp分页实现效果

    大量数据的显示就需要对内容进行分页,本文章就是就是介绍thinkphp分页进行整理,有需要的朋友一起来了解一下。
    2016-10-10
  • 深入理解PHP内核(二)之SAPI探究

    深入理解PHP内核(二)之SAPI探究

    这篇文章主要介绍了深入理解PHP内核(二)之SAPI探究的相关资料,需要的朋友可以参考下
    2015-11-11
  • ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解

    ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解

    这篇文章主要介绍了ThinkPHP5 框架引入 Go AOP,PHP AOP编程,结合具体项目项目分析了ThinkPHP5 引入 Go AOP,PHP AOP编程相关概念、原理、操作技巧与注意事项,需要的朋友可以参考下
    2020-05-05
  • yii2.0实现pathinfo的形式访问的配置方法

    yii2.0实现pathinfo的形式访问的配置方法

    这篇文章主要介绍了yii2.0实现pathinfo的形式访问的配置方法的相关资料,需要的朋友可以参考下
    2016-04-04
  • php对数组排序的简单实例

    php对数组排序的简单实例

    分享一个php数组排序的例子,介绍了和php,有关的知识、技巧、经验,和一些php源码等
    2013-12-12
  • PHP-Java-Bridge使用笔记

    PHP-Java-Bridge使用笔记

    这是我在做平安银行开发的时候,本地使用PHP环境,平安银行接口为Java接口的时候,采用PHP-Java-Bridge的方式调用接口的笔记。因为现在网上的教程基本上都不行了,所以在这里贴出我能使用的而且目前网上最新的版本(2014-09-19),如果有错,请通过邮件联系,谢谢。
    2014-09-09
  • 最新版本PHP 7 vs HHVM 多角度比较

    最新版本PHP 7 vs HHVM 多角度比较

    PHP 7 是 PHP 社区对 HHVM 的回应。PHP 7 发布的预览版本号称比之前的 PHP 5 的性能要提升100%。不过,PHP 还有一个竞争对手 HHVM (HipHop Virtual Machine) 一个运行 PHP 代码的虚拟工具。二者直接的比较正在升温,那么让我们来看一下他们直接的性能对比吧
    2016-02-02
  • 微信小程序之支付后调用SDK的异步通知及验证处理订单方法

    微信小程序之支付后调用SDK的异步通知及验证处理订单方法

    下面小编就为大家分享一篇微信小程序之支付后调用SDK的异步通知及验证处理订单方法,具有很好的参考价值,希望对大家有所帮助
    2018-01-01
  • ThinkPHP框架实现的邮箱激活功能示例

    ThinkPHP框架实现的邮箱激活功能示例

    这篇文章主要介绍了ThinkPHP框架实现的邮箱激活功能,结合实例形式分析了thinkPHP使用class.smtp.php及class.phpmailer.php类文件进行邮件发送实现激活功能的具体操作技巧,需要的朋友可以参考下
    2018-06-06

最新评论