
ThinkPHP
MarsWill
一直致力于后端开发工作。喜欢总结工作中所遇到过的难题以及分享解决方案。相信互联网的开放一定需要大家互相分享互相成长。
展开
-
支付宝支付即时到账接口在ThinkPHP商城中的应用
支付宝支付是PHP高级课程中ThinkPHP商城项目课的内容之一,在此视频中将会讲解如何将支付宝作为第三方库集成到ThinkPHP框架中,并且将支付宝的配置参数写入自定义配置中从而达到在整个项目中灵活调用支付的目的。涉及到的知识点有使用vendor函数加载第三方扩展库,对vendor函数做了详细的介绍。使用C函数来读取自定义配置。结合ThinkPHP的特性和支付宝第三方支付的调用方式做了支付宝集成到ThinkPHP框架的完整流程。原创 2017-02-16 14:19:27 · 2629 阅读 · 0 评论 -
微信支付-扫码支付方式在ThinkPHP商城中的使用(第二部分)
微信支付借助于用户分布非常广泛的手机微信客户端非常受用户欢迎,作为非常强大的第三方支付平台提供了非常强大的支付产品供商家使用。作为当前主流第三方支付产品之一,微信支付几乎是所有涉及到在线支付的平台都会具有的支付功能。本文主要讲解微信支付收款接口中的扫码支付产品,从微信支付商家平台的配置到demo的演示以及如何集成到ThinkPHP框架中,在ThinkPHP框架中完成一次简易订单的交易。当你看完本教程后你也可以把微信支付第三方支付的功能集成到自己的项目中。原创 2017-02-11 21:06:27 · 3085 阅读 · 17 评论 -
微信支付-扫码支付方式在ThinkPHP商城中的使用(第三部分)
微信支付借助于用户分布非常广泛的手机微信客户端非常受用户欢迎,作为非常强大的第三方支付平台提供了非常强大的支付产品供商家使用。作为当前主流第三方支付产品之一,微信支付几乎是所有涉及到在线支付的平台都会具有的支付功能。本文主要讲解微信支付收款接口中的扫码支付产品,从微信支付商家平台的配置到demo的演示以及如何集成到ThinkPHP框架中,在ThinkPHP框架中完成一次简易订单的交易。当你看完本教程后你也可以把微信支付第三方支付的功能集成到自己的项目中。原创 2017-02-11 21:10:00 · 2113 阅读 · 7 评论 -
微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用
扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,博客更新比较慢。如果有任何问题大家可以关注以上公众号,在公众号中给我留言,一般我会在晚上统一查看所有邮件及留言逐一回复。我的邮箱地址weiyongqiang@weiyongqiang.com希望和大家原创 2018-02-02 11:40:35 · 227399 阅读 · 23 评论 -
php中foreach使用&引用后的异常分析及处理办法
可能在PHP编码中使用&引用变量或者对象或者方法的人不多,但是&引用可以让你的代码变的简单而且节省资源消耗。在这篇文章中我们重点讨论的是foreach中使用&时出现的异常以及解决办法。$exp = [ [ 'name' => 'test1', 'age' =>...原创 2018-02-27 16:31:59 · 2218 阅读 · 1 评论 -
thinkphp5/tp5接口开发中跨域问题的全部解决方案,options请求的处理
场景还原:由于前后端分离后有可能出现接口的url和我们前端访问的url不再同一个域名下。这就会导致一个问题,就是浏览器的同源策略。对于同源策略如果要正常的使用我们就要处理跨域的问题。当然在跨域中接口发送前会有一次OPTIONS请求,关于为什么发送OPTIONS请求我们在正文中解释下。在tp5中解决跨域的问题,官方给出的文档是在路由中加allowCrossDomain()但是这对于我们的某些开发情...原创 2018-09-28 10:09:21 · 34665 阅读 · 3 评论 -
学习编程与学习编程语言不同
译注:本文来自phpocean,使用机翻后由Mr.Wei校对。[语言往往给程序员带来的成就感往往让其忘了初衷,当你不再买各种《XXX从入门到精通》就说明你要么放弃了要么明白了。_]我们都是程序员,我们都是学习者。看到有多少人(学习者)把时间浪费在毫无意义的事情上(bashing their head against the walls),以为自己在学习编程,这真是令人惊讶。您可能正在学习一...翻译 2018-11-16 12:37:07 · 1874 阅读 · 0 评论 -
thinkphp5在apache中重写规则不生效的问题[No input file specified.]解决
解决办法首先请确保你的vhost配置正确,因为这篇文章不是解决vhost配置的问题的,我自己的vhost中配置如下:<VirtualHost *:80> DocumentRoot "E:\project\siku_admin\service\public" ServerName local.api.sikukeji.com ServerAlias *.lo...原创 2019-03-15 14:56:32 · 4424 阅读 · 3 评论 -
tp5的rbac包重大更新加入JWT支持,更加简单的表生成方式,兼容SPA应用
更新内容浏览修复issues中的若干问题删除了过去角色的可继承关系。在日常使用中我们一般会用多角色来处理而很少会用到继承rbac可以从业务剥离使用单独的数据库来实现,针对issues中所说的如果有表前缀的情况进行了适配 #7增加了jwt方式验证时token的生成,token的刷新,token的验证rbac表名不可通过配置来改变(这种个性化在通用的rbac中是无意义的)减少对于use...原创 2019-04-18 14:39:05 · 1807 阅读 · 3 评论 -
thinkphp6/TP6支持多应用问题 HttpException in Controller.php line 64
thinkphp6的测试版本已经可以尝试安装了。支持自动多应用。而且多应用的方式很简单,直接在配置里设置auto_multi_app为true即可但是在使用中官方文档不是很清楚难免踩坑,在这儿遇到了配置了auto_multi_app而且创建结构都没问题但是就是提醒找不到控制器的问题初始多应用目录结构在/app目录下创建了wechat目录然后在/config/app.php中配置自动打开多...原创 2019-05-05 14:41:23 · 15029 阅读 · 3 评论 -
开发中的分类管理及分类树装结构的应用和操作(无限极分类树infinite-tree)
无限极分类树的原理无限极分类的原理非常简单,就是把每一个分类节点规定一个左值和右值来确定该节点在整个分类中的位置。一般的我们还会加上一个深度(层级)的值,表示他所处的深度。这样的一个好处是对于层级很深或者节点非常多的,比较庞大的分类或其他树我们想查找或者遍历就显得非常快。例如我们要查找所有的电脑办公分类下的所有后代分类。如果你的数据只是id和parent_id约束的结构那么你先要以电脑办公的i...原创 2019-06-05 15:39:56 · 2055 阅读 · 0 评论 -
微信支付-扫码支付方式在ThinkPHP商城中的使用(第一部分)
微信支付借助于用户分布非常广泛的手机微信客户端非常受用户欢迎,作为非常强大的第三方支付平台提供了非常强大的支付产品供商家使用。作为当前主流第三方支付产品之一,微信支付几乎是所有涉及到在线支付的平台都会具有的支付功能。本文主要讲解微信支付收款接口中的扫码支付产品,从微信支付商家平台的配置到demo的演示以及如何集成到ThinkPHP框架中,在ThinkPHP框架中完成一次简易订单的交易。当你看完本教程后你也可以把微信支付第三方支付的功能集成到自己的项目中。原创 2017-02-11 21:04:11 · 4575 阅读 · 0 评论 -
nginx+php出现No input file specified解决办法
今天在自己本地的开发环境突然出现了No input file specified错误,反复检查返现自己的配置文件和配置路径以及权限都没有问题。经过反复的排查终于发现了问题,现将问题及解决分享如下:问题原因分析在GitHub上下载了一个开源的tp5项目,之前自己本地的网站运行都没有问题。但是安装了这个开源项目后就发现本地其他网站都无法访问了。访问就是No input file specified错误原创 2017-09-17 00:06:23 · 20274 阅读 · 2 评论 -
thinkphp5的nestedsets无限极分类扩展包使用
tp5-nestedsets 本扩展包是tp5的nestedsets包,使用了部分tp5的特性实现了关系型数据库中特殊数据结构的处理。安装方法先安装composer如果不知道怎么安装使用composer请自行百度。 打开命令行工具切换到你的tp5项目根目录composer require gmars/tp5-nestedsets如果该方法报错请按照以下方式操作:打开项目根目录下的compo原创 2017-08-22 01:22:43 · 3088 阅读 · 0 评论 -
关于ThinkPHP框架addAll()方法的设计问题填坑
今天在讲解ThinkPHP框架的时候在使用ThinkPHP基础模型类提供的addAll()方法进行多条数据写入时报错了,而且使用模型的getError()都获取不到错误提示!没错,获取不到错误!所以我认为这是ThinkPHP框架设计中存在的Bug。在学生都去吃饭时我自己翻看了框架底层对于addAll()的实现。原创 2017-02-19 13:02:51 · 6801 阅读 · 1 评论 -
Uncaught Error: Call to undefined function lang() in framework/tpl/think_exception.tpl:82
在使用TP5框架的时候出现了如下的异常:Uncaught Error: Call to undefined function lang() in framework/tpl/think_exception.tpl:82这个异常的大概意思是在framework/tpl/think_exception.tpl这个文件中的lang()是一个未定义函数。而think_exception.tpl就是tp用来显示异常的试图模板。那为什么会报这个错误呢?我在trace中查看了文件加载的顺序,是这样的:原创 2017-05-04 14:55:42 · 8633 阅读 · 0 评论 -
TP5微信开发地址验证中的配置失败或者token验证失败的解决办法
在使用TP5做微信开发时大家一定遇到过配置失败或者token验证失败的情况,而且使用日志打印参数进行签名算法验证都是真确的。这个问题让我苦恼了好久。最终发现,在我们验证签名是输出了随机字符串 echo $echoStr;时如果没有关闭trace就会出现如下的输出原创 2017-04-24 16:48:23 · 6024 阅读 · 5 评论 -
基于tp5文件上传到七牛云的插件
基于tp5框架的七牛云存储实现,可以方便的实现文件上传,文件管理功能。只需两行代码就能完成一次文件上传 安装方式。使用composer安装,在项目根目录下运行原创 2017-04-25 21:04:44 · 5985 阅读 · 0 评论 -
thinkphp5中的分层控制器及其使用/tp5分层控制器
关于多级控制器和分层控制器希望大家不要被名称所困扰,这两个概念我更希望通过目录结构的改变来给大家说明。只是控制器所在的位置不同而已。 点击进入视频教程分层控制器中所定义的控制器其实是不能被URL直接访问得到,作为一个类被内部实例化调用而已,它也可以被试图调用。我们说多级控制器是在controller目录下新建目录来放置一类控制器类。 其实分层控制器是在模块目录下创建一个目录,例如在index/g原创 2017-08-11 10:52:23 · 11943 阅读 · 0 评论 -
thinkphp5错误:类型错误: Argument 1 passed to think\Hook::import() must be of the type array
点击进入视频教程使用thinkPHP5的时候出现如下错误类型错误: Argument 1 passed to think\Hook::import() must be of the type array, integer given, called in /data/php/college/thinkphp/library/think/App.php on line 509问题原因分析在我使用thi原创 2017-07-25 23:31:40 · 31812 阅读 · 1 评论 -
一个样例学会tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳转和重定向
点击进入视频教程tp5控制器一个样例明白控制器的定义及使用<?phpnamespace app\index\controller;use think\Controller;/** * Class User * @package app\index\controller * @author weiyongqiang <hayixia606@163.com> * 其实tp5中可以不集成Contr原创 2017-07-24 22:44:39 · 12831 阅读 · 0 评论 -
ThinkPHP5的安装使用/tp5快速入门
点击进入视频教程说明 本手记是在thinkPHP5.0.1的基础上的手记。因为ThinkPHP5的小版本的更新比较快,所以5.0.0和5.0.1的差别还是有点儿大,比如5.0.0的部分功能在后续版本中会废弃或者改变使用方法等。所以在看本手记时需要保证你所使用的ThinkPHP的版本为5.0.1,本记录的流程非框架学习的一般流程,是以有框架使用经验的程序员快速掌握并使用为目的而编写的。会从如何快速原创 2017-07-24 22:09:36 · 17377 阅读 · 0 评论 -
thinkphp5多级控制器及其使用
多级控制器其实就是对控制器的一个分组。比如我们的一个商城系统中有负责商品相关操作的Goods.php控制器 负责商品积分的控制器Score.php控制器。如果公司将这两个业务归于一个开发部门管理的。那么为了结构不那么乱我们可以在index/controller下创建一个目录。比如goods然后将我们的Goods.php和Score.php放置在其中。结构就变成了下图:点击进入视频教程也就是在cont原创 2017-08-11 10:43:31 · 9509 阅读 · 3 评论 -
tp5的RBAC插件及其使用很方便的管理用户登录及操作权限
tp5-rbac 本扩展包是tp5的rbac包,使用了部分tp5的特性实现了关系型数据库中特殊数据结构的处理。安装方法先安装composer如果不知道怎么安装使用composer请自行百度。 打开命令行工具切换到你的tp5项目根目录composer require gmars/tp5-rbac如果该方法报错请按照以下方式操作:打开项目根目录下的composer.json在require中原创 2017-08-22 16:38:55 · 13739 阅读 · 17 评论 -
thinkphp使用Db删除数据时无法删除或查询结果错误问题
有时候我们再使用thinkphp时使用command或者多项目的情况下需要使用多个数据库。本案例就是这个问题当然对于单一数据库的操作也会出现这个问题。使用Db来操作数据库时的误区因为临时需要更换数据库操作某个表通常会这样来写Db::connect([ 'type' => 'mysql', 'hostname' => '127...原创 2019-06-12 13:15:34 · 1265 阅读 · 0 评论