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 file_exists 检查文件或目录是否存在的函数
May 10 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
PHP经典面试题集锦
Mar 19 PHP
php创建无限级树型菜单
Nov 05 PHP
前端必学之PHP语法基础
Jan 01 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
php实现的表单验证类完整示例
Aug 13 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
Oct 23 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 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 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
matplotlib实现显示伪彩色图像及色度条
2019/12/07 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
塔吉特百货公司官网:Target
2017/04/27 全球购物
Europcar比利时:租车
2019/08/26 全球购物
医院总经理职责
2013/12/26 职场文书
银行演讲稿范文
2014/01/03 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
党课心得体会范文
2014/09/09 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python