
PHP
文章平均质量分 84
MarsWill
一直致力于后端开发工作。喜欢总结工作中所遇到过的难题以及分享解决方案。相信互联网的开放一定需要大家互相分享互相成长。
展开
-
thinkphp使用Db删除数据时无法删除或查询结果错误问题
有时候我们再使用thinkphp时使用command或者多项目的情况下需要使用多个数据库。本案例就是这个问题当然对于单一数据库的操作也会出现这个问题。使用Db来操作数据库时的误区因为临时需要更换数据库操作某个表通常会这样来写Db::connect([ 'type' => 'mysql', 'hostname' => '127...原创 2019-06-12 13:15:34 · 1265 阅读 · 0 评论 -
微信支付-扫码支付方式在ThinkPHP商城中的使用(第三部分)
微信支付借助于用户分布非常广泛的手机微信客户端非常受用户欢迎,作为非常强大的第三方支付平台提供了非常强大的支付产品供商家使用。作为当前主流第三方支付产品之一,微信支付几乎是所有涉及到在线支付的平台都会具有的支付功能。本文主要讲解微信支付收款接口中的扫码支付产品,从微信支付商家平台的配置到demo的演示以及如何集成到ThinkPHP框架中,在ThinkPHP框架中完成一次简易订单的交易。当你看完本教程后你也可以把微信支付第三方支付的功能集成到自己的项目中。原创 2017-02-11 21:10:00 · 2113 阅读 · 7 评论 -
微信支付-扫码支付方式在ThinkPHP商城中的使用(第二部分)
微信支付借助于用户分布非常广泛的手机微信客户端非常受用户欢迎,作为非常强大的第三方支付平台提供了非常强大的支付产品供商家使用。作为当前主流第三方支付产品之一,微信支付几乎是所有涉及到在线支付的平台都会具有的支付功能。本文主要讲解微信支付收款接口中的扫码支付产品,从微信支付商家平台的配置到demo的演示以及如何集成到ThinkPHP框架中,在ThinkPHP框架中完成一次简易订单的交易。当你看完本教程后你也可以把微信支付第三方支付的功能集成到自己的项目中。原创 2017-02-11 21:06:27 · 3085 阅读 · 17 评论 -
微信支付-扫码支付方式在ThinkPHP商城中的使用(第一部分)
微信支付借助于用户分布非常广泛的手机微信客户端非常受用户欢迎,作为非常强大的第三方支付平台提供了非常强大的支付产品供商家使用。作为当前主流第三方支付产品之一,微信支付几乎是所有涉及到在线支付的平台都会具有的支付功能。本文主要讲解微信支付收款接口中的扫码支付产品,从微信支付商家平台的配置到demo的演示以及如何集成到ThinkPHP框架中,在ThinkPHP框架中完成一次简易订单的交易。当你看完本教程后你也可以把微信支付第三方支付的功能集成到自己的项目中。原创 2017-02-11 21:04:11 · 4575 阅读 · 0 评论 -
[支付宝小程序PHP全栈开发]二、前端样式的设计.acss样式详解
本部分的视频内容地址在http://edu.youkuaiyun.com/course/detail/5750关于.acss文件在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面。当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由样式来决定的。我们知道在web开发中样式是在css文件中规定的,叫做层叠样式表 (Cascading Style Sheet原创 2017-09-01 16:11:49 · 2037 阅读 · 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 评论 -
Fatal error: Cannot use 'Object' as class name as it is reserved in xxx/Object.php on line 77
今天闲来无事将自己本机的开发环境换成了PHP 7.2.0 Beta 3,尤其是PHP7大版本后PHP版本的更新很快。使用yii2出现的错误在更新到PHP7.2测试版后出现的错误:Fatal error: Cannot use 'Object' as class name as it is reserved in /data/php/xhfkanfang/vendor/yiisoft/yii2/ba原创 2017-08-26 18:40:48 · 22692 阅读 · 2 评论 -
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 评论 -
微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付
本篇文章是微信支付最新接口V3版本的PHP实践教程,在该教程中主要使用的框架是thinkPHP5框架,如果你对thinkPHP5框架下的开发还不是很熟悉可以查看相关的教程,当然在我的博客中也有thinkPHP5的教程大家可以查看。在本篇文章中我的主要目标是打更少的字让大家明白如何使用微信公众号支付。在系列教程中设计了两个非常流行的使用场景,一个场景是使用thinkPHP5实现的文章赞赏功能,一个场原创 2017-09-11 02:35:51 · 7695 阅读 · 5 评论 -
微信支付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 评论 -
element-ui上传组件el-upload文件上传阿里云oss出现405 Method not allowed错误问题
今天在vue项目中出现了这个问题。在本地调试时文件上传正常但是打包到线上后出现了405 Method not allowed的错误。其实这个错误挺明确的,只是在分析的时候我们很难理性的去仔细查找。现将405错误分析,以及我的错误和解决办法分享如下。405 Method not allowed错误405码出现的原因有很多种的,一般我们使用post时出现405 错误最大的可能是 Web 服务器...原创 2019-06-12 01:22:12 · 13665 阅读 · 0 评论 -
开发中的分类管理及分类树装结构的应用和操作(无限极分类树infinite-tree)
无限极分类树的原理无限极分类的原理非常简单,就是把每一个分类节点规定一个左值和右值来确定该节点在整个分类中的位置。一般的我们还会加上一个深度(层级)的值,表示他所处的深度。这样的一个好处是对于层级很深或者节点非常多的,比较庞大的分类或其他树我们想查找或者遍历就显得非常快。例如我们要查找所有的电脑办公分类下的所有后代分类。如果你的数据只是id和parent_id约束的结构那么你先要以电脑办公的i...原创 2019-06-05 15:39:56 · 2055 阅读 · 0 评论 -
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 评论 -
tp5的rbac包重大更新加入JWT支持,更加简单的表生成方式,兼容SPA应用
更新内容浏览修复issues中的若干问题删除了过去角色的可继承关系。在日常使用中我们一般会用多角色来处理而很少会用到继承rbac可以从业务剥离使用单独的数据库来实现,针对issues中所说的如果有表前缀的情况进行了适配 #7增加了jwt方式验证时token的生成,token的刷新,token的验证rbac表名不可通过配置来改变(这种个性化在通用的rbac中是无意义的)减少对于use...原创 2019-04-18 14:39:05 · 1807 阅读 · 3 评论 -
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 评论 -
Unable to load dynamic library ‘swoole.so’ (tried: /usr/local/php/lib/php/extensions/no-debug-non-zt
Gracefully shutting down php-fpm … doneStarting php-fpm [28-Nov-2018 12:01:21] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘swoole.so’ (tried: /usr/local/php/lib/p...原创 2018-11-28 12:17:38 · 10339 阅读 · 0 评论 -
学习编程与学习编程语言不同
译注:本文来自phpocean,使用机翻后由Mr.Wei校对。[语言往往给程序员带来的成就感往往让其忘了初衷,当你不再买各种《XXX从入门到精通》就说明你要么放弃了要么明白了。_]我们都是程序员,我们都是学习者。看到有多少人(学习者)把时间浪费在毫无意义的事情上(bashing their head against the walls),以为自己在学习编程,这真是令人惊讶。您可能正在学习一...翻译 2018-11-16 12:37:07 · 1874 阅读 · 0 评论 -
thinkphp5/tp5接口开发中跨域问题的全部解决方案,options请求的处理
场景还原:由于前后端分离后有可能出现接口的url和我们前端访问的url不再同一个域名下。这就会导致一个问题,就是浏览器的同源策略。对于同源策略如果要正常的使用我们就要处理跨域的问题。当然在跨域中接口发送前会有一次OPTIONS请求,关于为什么发送OPTIONS请求我们在正文中解释下。在tp5中解决跨域的问题,官方给出的文档是在路由中加allowCrossDomain()但是这对于我们的某些开发情...原创 2018-09-28 10:09:21 · 34665 阅读 · 3 评论 -
PHP编写webhook无法执行git的原因:linux中sudo免输入密码运行命令
使用场景:在运维管理中搭建一个可视化的版本控制和代码提交上线部署的平台是非常必要的。在这种情况下运维人员在linux的terminal中使用命令行或者git工具来不是很方便。我们需要的方式是使用webhook自动部署或者一个网页界面化的操作面板来控制。本文和之前的文章《CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务》是承接关系。如...原创 2018-03-16 10:37:01 · 3521 阅读 · 0 评论 -
使用pecl安装php扩展时出错-bash: pecl: command not found
使用pecl安装PHP的扩展时非常方便的,但是如果初次使用pecl安装扩展则会出现如下的错误:[本文档使用的系统为CentOS7版本][root@iZ2zejcwx7sfb0ydjcwtskZ ~]# pecl-bash: pecl: command not found这是因为在我们线上的PHP版本中默认是没有该功能的。为了使用此扩展我们还需要单独安装扩展。yum install php-deve原创 2017-08-15 14:12:55 · 14671 阅读 · 1 评论 -
thinkphp5多级控制器及其使用
多级控制器其实就是对控制器的一个分组。比如我们的一个商城系统中有负责商品相关操作的Goods.php控制器 负责商品积分的控制器Score.php控制器。如果公司将这两个业务归于一个开发部门管理的。那么为了结构不那么乱我们可以在index/controller下创建一个目录。比如goods然后将我们的Goods.php和Score.php放置在其中。结构就变成了下图:点击进入视频教程也就是在cont原创 2017-08-11 10:43:31 · 9509 阅读 · 3 评论 -
yii2的yii\db\ActiveRecord::deleteAll()请慎用
通常情况下框架的删除数据的方法是需要加条件才能够删数据的,基本上市框架强制的要求。没有添加删除条件是删除不了的,但是yii2框架就不一样。如果你操作不当就只能去早点儿阅读下《mysql从精通到跑路》这本书了。原创 2017-03-11 14:03:41 · 14148 阅读 · 0 评论 -
Invalid Call – yii\base\InvalidCallException The cookie collection is read only.
Invalid Call – yii\base\InvalidCallExceptionThe cookie collection is read only.在yii2中提供了两种方法来实例化一个cookie容器但是两个容器的作用分别不同,所以我们需要在合适的场景选择合适的方式来初始化。原创 2017-03-11 17:31:04 · 3345 阅读 · 0 评论 -
yii2中getter 和 setter 注意事项
如果此类属性名和类成员变量相同,以后者为准。 例如,假设以上 Foo 类有个 label 成员变量, 然后给 $object->label = ‘abc’ 赋值,将赋给成员变量而不是 setter setLabel() 方法。其实这句话就是说嘛我们的setter和getter只对隐藏属性和受保护属性起作用。如果是public修饰符修饰的变量则直接会赋值和获取,而不会经过我们的setter或者getter,例子:原创 2017-03-07 09:53:23 · 1064 阅读 · 0 评论 -
PHP中表单没有问题但是$_FILES为空的解决办法
在文件上传中$_FILES接收不到值的情况有很多种,总结一下常见的错误有下边几种,也是大家在使用中容易犯的错误。1.在form中忘记加enctype="multipart/form-data"属性,这个是最常犯的错误;2.忘记在php.ini中打开文件上传的功能file_uploads=on原创 2017-02-27 11:56:58 · 12616 阅读 · 3 评论 -
Invalid Configuration – yii\base\InvalidConfigException The fileinfo PHP extension is not installed
如果在使用yii2的上传功能上传文件时出现如下的错误从错误提示信息可以得到是因为PHP的fileinfo的扩展没有开启,如果熟悉PHP扩展的人应该能够知道如何开启fileinfo扩展。原创 2017-03-08 00:38:26 · 7889 阅读 · 0 评论 -
ueditor Uncaught ReferenceError: errorHandler is not defined解决办法
在使用ueditor作为富文本编辑器时出现ueditor.all.js:24557 Uncaught ReferenceError: errorHandler is not defined 错误原创 2017-02-12 10:17:57 · 27776 阅读 · 1 评论 -
PHP下安装及使用Redis扩展(Windows环境)
redis作为一个key-value数据库在近年来非常火爆,尤其是在大数据和云计算发展迅速的今天。同样redis也成为了开发人员必学必须使用的一个工具。同时redis在数据储存时支持持久储存和内存储存,既能够保证数据存取的快速性也能够保证数据的持久性。key-value数据库发展的历史非常长,在很早之前memcached作为一个在生产环境中使用的key-value类型的数据库,经常被当做缓存来使用。但是redis是对memcached所存在的不足的弥补。下边我来分享下redis在PHP中的安装及使用,也是因原创 2017-02-20 13:43:38 · 5419 阅读 · 0 评论 -
关于ThinkPHP框架addAll()方法的设计问题填坑
今天在讲解ThinkPHP框架的时候在使用ThinkPHP基础模型类提供的addAll()方法进行多条数据写入时报错了,而且使用模型的getError()都获取不到错误提示!没错,获取不到错误!所以我认为这是ThinkPHP框架设计中存在的Bug。在学生都去吃饭时我自己翻看了框架底层对于addAll()的实现。原创 2017-02-19 13:02:51 · 6801 阅读 · 1 评论 -
Unable to verify your data submission.加入了_csrf也报400错误的解决
对于这个错误一般有以下两种解决方案:1.在form标签中添加<input type="hidden" name="_csrf" value="<?=Yii::$app->request->csrfToken?>" />2.在控制器开始部分添加public $enableCsrfValidation = false;如果你添加了以上标签还是报错那么你需要坚持看完这篇文档原创 2017-02-28 12:04:08 · 4717 阅读 · 0 评论 -
Yii2使用阿里大鱼或阿里云短信发送短信
短信发送作为实时为用户传递信息的工具在企业中非常常用。由于去年起手机号码都实现了实名认证,所以作为用户信息的真实性验证或者用户购买信息及资金变化的通知,短信方式就显得尤为重要也非常的方便。下边我就来分享下在yii2中如何使用阿里大鱼及阿里云云通信/短信服务来发送短信。原创 2017-04-05 18:04:51 · 5440 阅读 · 0 评论 -
php curl返回false填坑记-curl调用微信创建自定义菜单返回false
首先声明一点,这个错误可能在你的开发生涯中不会遇到,除非你直接复制了微信公众平台的api地址。不过这应该算是php中curl扩展的一个bug,为什么是bug呢?让我们仔细来看。总结:使用curl来请求数据时curl的url地址中的任何地方不能有空格存在,不然会返回一个你琢磨不透的false原创 2017-05-03 14:47:58 · 15106 阅读 · 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 评论 -
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 评论 -
一个样例学会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错误:类型错误: 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 评论 -
thinkphp5中的分层控制器及其使用/tp5分层控制器
关于多级控制器和分层控制器希望大家不要被名称所困扰,这两个概念我更希望通过目录结构的改变来给大家说明。只是控制器所在的位置不同而已。 点击进入视频教程分层控制器中所定义的控制器其实是不能被URL直接访问得到,作为一个类被内部实例化调用而已,它也可以被试图调用。我们说多级控制器是在controller目录下新建目录来放置一类控制器类。 其实分层控制器是在模块目录下创建一个目录,例如在index/g原创 2017-08-11 10:52:23 · 11943 阅读 · 0 评论 -
php使用composer常用问题及解决办法集:zlib_decode():data error......
composer是PHP中非常优秀的一个包管理工具,可以帮助我们来管理项目所需要依赖的所有包以及插件,也可以用来从packagist中创建一个项目。但是在初次使用中会出现各种各样的问题,现我将别的开发人员问过我的的关于composer的错误以及解决办法整理如下,希望能够帮大家跳坑:错误问题一 Failed to decode response: zlib_decode(): data erro原创 2017-08-02 17:21:45 · 30902 阅读 · 0 评论