Thinkphp 框架扩展之Widget扩展实现方法分析


Posted in PHP onApril 23, 2020

本文实例讲述了Thinkphp 框架扩展之Widget扩展实现方法。分享给大家供大家参考,具体如下:

Widget扩展

Widget扩展一般用于页面组件的扩展。

举个例子,我们在页面中实现一个分类显示的Widget,首先我们要定义一个Widget控制器层 CateWidget,如下:

namespace Home\Widget;
use Think\Controller;
class CateWidget extends Controller {
  public function menu(){
    echo 'menuWidget';
  }
}

然后,我们在模版中通过W方法调用这个Widget。

{:W('Cate/Menu')}

执行后的输出结果是:

menuWidget

传入参数

如果需要在调用Widget的时候 使用参数,可以这样定义:

namespace Home\Widget;
use Think\Controller;
class CateWidget extends Controller {
  public function menu($id,$name){
    echo $id.':'.$name;
  }
}

模版中的参数调用,使用:

{:W('Cate/Menu',array(5,'thinkphp'))}

传入的参数是一个数组,顺序对应了menu方法定义的参数顺序。

则会输出

5:thinkphp

模板支持

Widget可以支持使用独立的模板,例如:

namespace Home\Widget;
use Think\Controller;
class CateWidget extends Controller {
  public function menu(){
    $menu = M('Cate')->getField('id,title');
    $this->assign('menu',$menu);
    $this->display('Cate:menu');
  }
}

CateWiget类渲染了一个模版文件 View/Cate/menu.html。 在menu.html模版文件中的用法:

<foreach name="menu" item="title">
{$key}:{$title}
</foreach>

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

PHP 相关文章推荐
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
解析php dirname()与__FILE__常量的应用
Jun 24 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP实现微信发红包程序
Aug 24 PHP
纯php生成随机密码
Oct 30 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 PHP
php微信小程序解包过程实例详解
Mar 31 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 #PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 #PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 #PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 #PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 #PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 #PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 #PHP
You might like
php数字转汉字代码(算法)
2011/10/08 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
PHP 实现缩略图
2021/03/09 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python3 读写文件换行符的方法
2018/04/09 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
教育科学研究生自荐信
2013/10/09 职场文书
教育实习生的自我评价分享
2013/11/21 职场文书
管理心得体会
2013/12/28 职场文书
企业申诉管理制度
2014/01/30 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
vue 给数组添加新对象并赋值
2022/04/20 Vue.js