首先我们使用composer安装:composer require phpoffice/phpspreadsheet然后建立一个抽象的工具类Export并为其创建单例类:names...
Thinkphp5 部署Apache URL重写问题
我们写好的代码往往部署于Linux上,为了安全和URL的美观,经常会利用 Apache或者 Nignx 进行URL 重写。ThinkPHP5 官方URL重写说明: Thinkphp5 URL...
解决 ThinkPHP5 中多表多字段查询问题(MySQL 视图应用以及介绍)
在日常开发中,我们经常会遇到如下问题:在前端展示的列表中,往往包含多个表的数据且需要查询多个表的字段,进行筛选分页排序等问题,常见的方法是采用 join 方法或者 ThinkPHP 的关联模型、视图查...

ThinkPHP5 API 多版本控制开发
开发准备对于接口开发,建议采用单独的项目部署,与后台项目分离开来,原因如下:1. 接口多用于查询数据,对于数据提交的较少2. 接口的权限多采用token模式,后台多采用RBAC控制访问3. 对于需要高...
ThinkPHP5 Loader 类介绍以及使用
Loader 类功能:实现类库或者资源的自动加载源代码:/thinkphp/libary/think/Loader.php我们主要来看几个用到的方法:模型加载方法/** &nb...

ThinkPHP5 异常接管
在实际应用中,对于异常错误处理,我们往往需要进行错误的友好处理,并且需要记录错误(越为详细越好),一方面提高了用户的体验,另一方面也可以帮助开发人员更好的调试。ThinkPHP5 异常处理说明:&nb...
Thinkphp5 控制器(三:控制器与模型交互)
对于简单的业务,无需通过逻辑层、服务层等交互,这样对于开发来讲是相对复杂,于是我们可以将简单的业务进行封装。对验证器、控制器、模型进行封装调用/** * 快速调用执行model函...
ThinkPHP5 工具类(四:上传文件至 OSS)
前面介绍了 ThinkPHP5 文件上传类,下面我们利用 ThinkPHP5 文件类实现上传文件至 OSS。文件保存在OSS有以下好处:1)实现服务器水平扩展(负载均衡)时,可以保证用户上传的文件保存...
ThinkPHP5 工具类(三:Session 类)
由于PHP自带的session销毁采用GC的销毁,具有诸多弊病,如无法及时清理过期session,所以最好通过程序来判断session是否过期。tp5的 session类说明文档: http...
ThinkPHP5 工具类(二:ShowCode 返回类)
需求:利用ThinkPHP5 实现接口的需要定义统一的返回格式定义ShowCode类namespace app\common\toole; use think\Config; us...