ThinkPHP的Widget扩展实例

 更新时间:2014年06月19日 12:08:29   投稿:shichen2014   我要评论
这篇文章主要介绍了ThinkPHP的Widget扩展 ,需要的朋友可以参考下

ThinkPHP的Widget扩展用于根据页面需要输出不同内容,它在项目目录中的Lib/Widget下定义。

具体定义如下:

class NewsListWidget extends Widget{
  public function render($data){
    // code...
  }
}

需要注意:

1.Widget是一个抽象类,其中有一个抽象方法(abstract)render,必须在子类中实现;
2.Widget的render方法必须使用return返回,而不是直接输出;
3.$data是传入Widget的参数。

然后我们可以在模板中直接调用这个Widget:

{:W('NewsList', array('tmpl' => 'a'))}

这里我传入了一个参数,这是比较常见的用法,Widget用来做什么?根据页面需要输出不同内容,这个不同内容,可以是数据不同,当然也可以是模板不同。

class NewsListWidget extends Widget{
  public function render($data){
    // code
    $news; // 这里可以是数据检索语句检索出来一个数据集
    $html = $this->renderFile($data['tmpl'], $news);
    return $html;
  }
}

这时候会自动渲染模板文件/Lib/Widget/NewsList/a.html的内容,并把$news传送过去,可以当普通模板文件处理,然后输出。

当然,还可以在Action控制器里面获取Widget的内容,进行二次加工。

$content = W('NewsList', array('tmpl' => 'a'), TRUE); // 第三个参数表示是否返回字符串,默认是FALSE,代表直接输出。

另外,ThinkPHP是MVC框架,请大家把数据检索相关的内容放在Model层

相关文章

  • 浅谈PHP匿名函数和闭包

    浅谈PHP匿名函数和闭包

    这篇文章主要介绍了PHP匿名函数和闭包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Windows和Linux中php代码调试工具Xdebug的安装与配置详解

    Windows和Linux中php代码调试工具Xdebug的安装与配置详解

    这篇文章主要介绍了Windows和Linux中php代码调试工具Xdebug的安装与配置详解,需要的朋友可以参考下
    2014-05-05
  • 浅谈PHPANALYSIS提取关键字

    浅谈PHPANALYSIS提取关键字

    这篇文章主要介绍了PHPANALYSIS如何提取关键字,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • PHP中使用file_get_contents post数据代码例子

    PHP中使用file_get_contents post数据代码例子

    这篇文章主要介绍了PHP中使用file_get_contents post数据代码例子,本文直接给出代码实例,需要的朋友可以参考下
    2015-02-02
  • ajax实现无刷新分页(php)

    ajax实现无刷新分页(php)

    直接给出源代码,可自行分析,写的不好请留言指正,谢谢!
    2010-07-07
  • PHP模板引擎Smarty内建函数详解

    PHP模板引擎Smarty内建函数详解

    这篇文章主要介绍了PHP模板引擎Smarty内建函数用法,结合实例形式分析了smarty中常见的内建函数功能,定义与使用方法,需要的朋友可以参考下
    2016-04-04
  • php模板引擎技术简单实现

    php模板引擎技术简单实现

    这篇文章主要为大家详细介绍了php模板引擎技术简单实现,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 一文掌握PHP Xdebug 本地与远程调试(小结)

    一文掌握PHP Xdebug 本地与远程调试(小结)

    这篇文章主要介绍了一文掌握PHP Xdebug 本地与远程调试(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • ThinkPHP快速入门实例教程之数据分页

    ThinkPHP快速入门实例教程之数据分页

    这篇文章主要介绍了ThinkPHP快速入门实例教程的数据分页实现过程,需要的朋友可以参考下
    2014-07-07
  • ThinkPHP缓存方法S()概述

    ThinkPHP缓存方法S()概述

    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期。S()缓存方法支持有效期,又称动态缓存方法,这篇文章主要介绍了ThinkPHP缓存方法S(),需要的朋友可以参考下
    2014-06-06

最新评论