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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
php实现的简单压缩英文字符串的代码
Apr 24 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
php简单提示框alert封装函数
Aug 08 PHP
解析php中memcache的应用
Jun 18 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
php提交post数组参数实例分析
Dec 17 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
php生成毫秒时间戳的实例讲解
Sep 22 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
第一个无线电台是由谁发明的
2021/03/01 无线电
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
Python语言进阶知识点总结
2019/05/28 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Python和Bash结合在一起的方法
2020/11/13 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
公司同意接收函
2014/01/13 职场文书
法人委托书范本
2014/04/04 职场文书
琅琊山导游词
2015/02/05 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
何玥事迹观后感
2015/06/16 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书