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 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
php随机显示图片的简单示例
Feb 15 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
PHP中返回引用类型的方法
Apr 03 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
大家须知简单的php性能优化注意点
Jan 04 PHP
深入了解PHP中的Array数组和foreach
Nov 06 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
PHP的PDO连接讲解
Jan 24 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相当简单的分页类
2008/10/02 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
探讨Vue.js的组件和模板
2017/10/27 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
跟老齐学Python之用Python计算
2014/09/12 Python
python的re模块应用实例
2014/09/26 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
Python使用剪切板的方法
2017/06/06 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
python中for in的用法详解
2020/04/17 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
趣味体育活动方案
2014/02/08 职场文书
小学生植树节活动总结
2014/07/04 职场文书
老龄工作先进事迹
2014/08/15 职场文书
人大代表选举标语
2014/10/07 职场文书
健康状况证明模板
2014/10/23 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
分享python函数常见关键字
2022/04/26 Python