这几天在开发在线学习平台的过程,遇到这样的问题,先看js代码, ? 很简单的点击按钮,触发ajax 但是问题是,success里的回调根本就不执行,百般修改也没反应。再看php代码, ?...到后来已经被我简化为只有一句echo做为返回值了,但这时依然不执行,这时我意识到,即不是js的问题,也不是php的问题,那么问题应该定位在协议或数据方面。...在网上反复查找php接收数据时的请求头方面的资料,终于确定,问题原因是,请求头的 header 里的Content-Type的问题。...这个在线学习平台说起来简单,但这一路开发过来,踩进去的坑有很多,就这样继续吧,成功的路从来都是曲折的。...最后是广告时间,如果想要转行或提高前端技术的同学,可以看一下web前端提高班的课程, 如果觉得本文对你有用,请帮忙转发,并点赞,谢谢。
大周末的不要太复杂,给大家分享一个小工具 cmd 他哥 cmder ? 这是啥东西? cmder 是一个开源的windows控制台终端,拥有非常简洁的外观,支持多窗口管理,功能非常强大。...支持linux的常用命令在windows下使用,如ls,cat,grep,也集成了一些其它工具git,ssh等 ? 可以扩展为其它REPL环境,如python,node,powershell等 ?...咋安装的?...有人知道windows 自带的cmd/powershell,可以使用shift + 右键的方式,可以在右键菜单快速打开一个当前目录的命令行窗口,cmder能不能配置到右键菜单呢?...答案是肯定的: 命令行输入:cmder /REGISTER ALL 回车 任何目录下,右键菜单中就有了一个cmder here的命令,在当前目录就可以打开一个cmder窗口,windows命令和linux
request.X'),可用Request::instance()->param();或者request()->param获取提交参数 控制器不用强制加Controller 查询: TP3.2...alias重命名,联表啥都不用,直接用表名+空格+重命名名称 获取单个字段数值用column,新增数据用create,insert代替add,更新用update代替save TP3.2...TP5中也取消了TP3.2中的部分常量,比如:IS_AJAX,在TP5中集中在request()这个函数中,我们判断是否是ajax提交, 可用:request()->isAjax();判断是否是post...我觉得应该是DIRECTORY_SEPARATOR在window下转换成“\”了, DIRECTORY_SEPARATOR是php的内部常量,在windows上返回\,而在linux或者类unix上返回...首先对3.X的不严谨给开发者们带来的不正确的引导表示歉意,在5.0版本正式废除类似/id/1方式 可以通过get获取到id的方法,严格来讲这样的url是不属于$_GET的,现在可以通过param获取,
,我设置了 GOPROXY,并且安装了一个名为 air 的工具,熟悉 golang 的朋友都知道,它是用来实现热重载的,本来一切都正常,结果突然报错:「Setctty set but Ctty not...valid in child」: air 在 air 的 issue 里没找到对应的报告,不过在 golang 的 issue 里倒是发现了一些线索: If tty is going to be open...,发现我安装的 air 依然有问题,为了验证问题,我在一个干净的容器里手动安装,结果搞出一个匪夷所思的 v1.21.2 的版本来: shell> go get -u github.com/cosmtrek...,于是我就查询了一下 v1.21.2 这个匪夷所思的版本,结果发现从 2020-08-07 开始一直有数据: goproxy 如此看来,问题的来龙去脉大概是这样的:2020-08-07 之前的某天,官方在升级打包的时候搞错了标签...的用户在 go get 安装的时候加 -u 选项也得不到新版本。
第二次尝试打开PHP的报错信息ini_set('display_errors','On');error_reporting(E_ALL); 结果只能看到Fatal error: Uncaught Error...研究了半天发现是Think.class.php里面include Commons.php等文件失败,但是找不到失败的原因。...因为这个错其实是因为include文件失败,导致C函数无法使用,并不是根源上引起无法访问的错误。...PHP原生的,注释掉试试能不能得到更多错误。...删掉public果然解决了这次的奇怪问题。
本文实例讲述了tp5框架内使用tp3.2分页的方法。分享给大家供大家参考,具体如下: tp5内使用tp3.2分页 由于百度上面太多坑,所以自己拿来去改了一下 下面是完全可行的操作 ?...首先吧tp3.2的分页复制出来,拿到tp5 extend文件夹下面的org里面,把tp3.2的分页名称改为Page.php 然后改一下里面的代码 下面是改过后的代码 <?...命名规范 class Page{ public $firstRow; // 起始行数 public $listRows; // 列表每页显示行数 public $parameter; // 分页跳转时要带的参数...public $totalRows; // 总行数 public $totalPages; // 分页总页面数 public $rollPage = 7;// 分页栏每页显示的页数 public $...:$parameter;//因为tp5无法直接获取到$_GET,所以这里直接拿tp5的函数input('param.')
docker有个类似 github的平台,叫 https://hub.docker.com 可以 pull 官方或第三方提供的镜像,当然也可以发布自己的镜像供别人下载,互相学习。...平台注册账号 -> docker login (登录) -> docker image ls (查看本地镜像) -> docker push (如 docker push finleyma/phpenv:tp3.2...) 注册完成后如果要发布本地自己制作好的镜像,要执行命令 先执行 `` 查看本地存在的镜像 然后 docker push 某镜像 , 比如提交上篇制作好的镜像 ?...image.png 刷新docker hub的个人 REPOSITORY 页面,会看到已经存在了 https://hub.docker.com/r/finleyma/phpenv/ 这样的话其他项目成员可以直接执行...docker run -t -i -p 8089:80 -v [他的项目路径]:/var/www "finleyma/phpenv:tp3.2" /bin/bash 进到终端只需只需 webserver
jQuery判断checked是否是选中状态的三种方法: .attr('checked') // 返回:"checked"或"undefined" ; .prop('checked') // 返回true.../false .is(':checked') // 返回true/false //别忘记冒号哦 jQuery赋值checked的几种写法: $("#checked").attr("checked...checked").attr("checked",true); //不标准,不推荐了 $("#checked").attr("checked","true"); //不标准,不推荐了 jQuery的prop...()的赋值(推荐如下写法): $("#checked").prop("checked",true); //标准写法,推荐! ...所以正确的用法应该是使用.prop()方法。可以保证每次都会生效。
问题背景 在 IntelliJ IDEA 的使用过程中,尤其是在我们安装后首次使用的时候,我们可以会遇到两个问题: 常用的快捷键不好使 选中多行代码,按删除键不好使 [choose-code] 如上图所示...,这就是选中了多行代码,但按删除键不好使的情况。...解决方法 第一个问题:快捷键不好使 对于这个问题,常见于我们首次安装 IDEA,其默认的快捷键模式并不一定是我们习惯的,因此修改快捷键模式即可。...第二个问题:删除键不好使 对于这个问题,实际上,它并不一定是问题,因为在我们选择了不同的编辑模式后,就有可能出现快捷键以及删除键“不好使”的情况。...[tools-vim] 如上图所示,我们设置了Vim Emulator编辑模式,这时我们常用的非vim编辑器模式下的快捷键自然也就是失效了。
文章目录 问题背景 解决方法 第一个问题:快捷键不好使 第二个问题:删除键不好使 问题背景 在 IntelliJ IDEA 的使用过程中,尤其是在我们安装后首次使用的时候,我们可以会遇到两个问题: 常用的快捷键不好使...选中多行代码,按删除键不好使 如上图所示,这就是选中了多行代码,但按删除键不好使的情况。...解决方法 第一个问题:快捷键不好使 对于这个问题,常见于我们首次安装 IDEA,其默认的快捷键模式并不一定是我们习惯的,因此修改快捷键模式即可。...第二个问题:删除键不好使 对于这个问题,实际上,它并不一定是问题,因为在我们选择了不同的编辑模式后,就有可能出现快捷键以及删除键“不好使”的情况。...如上图所示,我们设置了Vim Emulator编辑模式,这时我们常用的非vim编辑器模式下的快捷键自然也就是失效了。 既然我们知道了出现问题的原因,那么通过Tools菜单栏取消该编辑模式即可。
分享给大家供大家参考,具体如下: 用tp3.2.3做了不少项目,但是毕竟要与时代接轨,学习一些新的框架,比如tp5 以下记录一些学习中遇到的问题及解决办法,还有tp3.2和tp5.0的一些区别,适合给用过...目录结构整体与tp3.2大同小异,文件夹首字母小写了,应用入口文件在根目录下public/index.php,官方文档对public文件夹定义为WEB部署目录(对外访问目录): ?...(与tp3.2相比,父类控制器不能是Public控制器) 【配置参数】 tp3.2里面使用C方法设置、获取配置参数 tp5使用助手函数config()设置、获取配置参数: //配置一个参数 config...【安全获取变量】 tp3.2可以使用I方法安全获取get、post等系统输入变量 tp5中使用助手函数input() //获取get变量 $data1 = input('get.name'); //获取...连接数据库:tp3.2支持M方法连接数据库,tp5使用 Db类 或助手函数db() 查询数据:依旧使用find()、select()方法,查询一个字段使用value()方法代替getField() //
对于 TP5 还没有上手写过项目,再了解一下 TP5 和 TP3.2 的区别 URL 的变动 在 5.0 版本正式废除类似/id/1 方式 可以通过 get 获取到 id 的方法,严格来讲这样的 url...是不属于$_GET的,现在可以通过param获取,具体使用可以通过请求部分查询 我好像 TP3.2 经常使用 get 或者大 I 方法来获取 id 的参数的 模型的变动 新版的模型查询返回默认对象,系统默认增加了...的开发者,all 或 select 结果是对象的数组集合,是无法使用toArray进行转换的 在 TP3.2 中使用最多的还是 M 和 D 方法,查询find和select用的最多 ---- 命名规范...\think\Validate类或者验证器进行验证,不仅适用于模型,在控制器也可直接调用 自动验证我在 TP3.2 中也用,但是不经常写 配置文件 新版对配置很多的配置参数或者配置层次都和之前不同了,建议大家要么看看代码...,要么仔细通读下官方的开发手册,不要因为配置的问题浪费自己一整天的时间 异常 5.0 对错误零容忍,默认情况下会对任何级别的错误抛出异常,并且重新设计了异常页面,展示了详尽的错误信息,便于调试 系统常量的废弃
对于 TP5 还没有上手写过项目,再了解一下 TP5 和 TP3.2 的区别 URL 的变动 在 5.0 版本正式废除类似/id/1 方式 可以通过 get 获取到 id 的方法,严格来讲这样的 url...是不属于$_GET的,现在可以通过param获取,具体使用可以通过请求部分查询 我好像 TP3.2 经常使用 get 或者大 I 方法来获取 id 的参数的 模型的变动 新版的模型查询返回默认对象,系统默认增加了...的开发者,all 或 select 结果是对象的数组集合,是无法使用toArray进行转换的 在 TP3.2 中使用最多的还是 M 和 D 方法,查询find和select用的最多 命名规范 目录和文件名采用小写...\think\Validate类或者验证器进行验证,不仅适用于模型,在控制器也可直接调用 自动验证我在 TP3.2 中也用,但是不经常写 配置文件 新版对配置很多的配置参数或者配置层次都和之前不同了,建议大家要么看看代码...,要么仔细通读下官方的开发手册,不要因为配置的问题浪费自己一整天的时间 异常 5.0 对错误零容忍,默认情况下会对任何级别的错误抛出异常,并且重新设计了异常页面,展示了详尽的错误信息,便于调试 系统常量的废弃
但遇到了新的问题: 容器内安装的服务器是nginx,nginx对 PHPINFO 支持不好,对于ThiankPHP项目,简单的说在apache服务器下运行 http://localhost:8088...然后 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 如 docker commit cb439fb2c714 finley/phpenv:tp3.2...commit 会基于对container的修改创建一个新的镜像 具体用法请参见官方文档:commit 注意: 经查,不推荐更改运行中的容器配置,容器本身是无状态的,当然也可以通过进入容器内部的方式进行更改...: docker exec -it 这样的更改是无法持久化保存的,当容器重启后,更改就丢失了,正确的做法是将需要持久化保存的数据放在挂载的存储卷中,当配置需要改变时直接删除重建。...finleyma/php-dev:tp3.2 问题: 这个项目的环境是有了,但是是多人开发,我如何将我的配好的镜像分享给他人呢?
2008-10-14 要在VMware中ubuntu,建立虚拟机,设置ubuntu镜像位置等当然都是必须的了。可安装完成后,虽然能用,但却有几个令人不爽的问题。...一是没有安装VMware Tools,不可以在host和guest之间共享文件,虚拟机状态栏上还总是显示烦人的黄色叹号;二是未设置国内有效而快捷的更新源,导致用户体验不佳,比如字体显示难看,不能方便地自定义编程环境等...;三是鼠标滚轮不好使(很多其它的LINUX版本和ubuntu的其他版本似乎是装完VMware Tools之后变得不好使,8.04经我试验,未装之前就不好使)。...要解决这些,可以参考: 在虚拟机菜单栏选VM—Install VMware Tools,这时有可能直接就能弹出含有需要文件的窗口,那是再好不过的了。...不过有时候但不出来,可以把光盘位置设到VMware安装目录里的Linux.iso,这样就可以很容易的挂在光盘,把里面的两个文件拷到桌面。
本文实例讲述了php使用fputcsv实现大数据的导出操作。...php set_time_limit(0); ini_set('memory_limit', '128M'); //使用TP3.2的String类,php7下会报错,注意把类名换一下 require...,'); $db- query($insSql); } $end = microtime(true); echo '用时:', $end - $begin; $db- close(); 里面用到的TP3.2...的String类大家自行上TP官网下载。...对于如何用phpexcel导出大数据,并没有什么比较好的方案,phpexcel提供的一些缓存方法,数据压缩,虽然内存使用小了,但所用时间则加长了,时间换空间,显然并不是最好的方案。
由于用惯了tp3.2,改用tp5有些还是感觉别扭的 直接上问题:项目中需要用到引入公共导航、头部、底部、右边部分等等 首先要弄清楚thinkphp5的配置项是哪个文件,众所周知:config.php,如下图所示...‘taglib_end‘ = ‘ ‘, ‘taglib_pre_load‘ = ‘app\common\taglib\Cc‘, ], 上面代码红色部分就是定义引入公共部分的标签库标签...,图2中红框内就是引入的公共的部分 ?...引入公共部分header、footer的方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。...在此也非常感谢大家对ZaLou.Cn网站的支持!
如果你想判断当前的系统类型,那么可以使用 PHP_OS 常量。 例如如下代码: <?...1 : 0 );//(在tp3.2中看到就顺便拿上来了) 定义一个常量IS_WIN,来判断系统类型,这样我们就可以方便了很多。 strstr(PHP_OS, 'WIN') ?...1 : 0 使用strstr函数查找PHP_OS常量里面是否存在win,如果存在那么IS_WIN的值就为1,不存在就为0(在这里我们使用了三目运算符) 这样我们在接下来的代码里就可以使用 IS_WIN
前言 YznCMS系统磕磕绊绊历经到2021,已经有6年有余,岁月是把杀猪刀,我已经从一个年轻帅小伙蜕变成油腻中年,感谢一直支持和使用yzncms的忠实用户们,让我们一起回顾它的发展岁月。...2015年 2015年其实也接触thinkphp不久,当时还是用着phpcms,织梦等一些程序建站,后来就想着自己试着做一套cms,经历一个月时间,很粗糙的yzncms就此诞生,采用了thinkphp3.2...图片 图片 图片 图片 2017年 2017年正式免费开源,使用了码云作为唯一开源地址,采用了最新版本的thinkphp5.0开发,相对tp3.2版本要增强了不少,但是BUG很多,所以基本使用者都是学习使用的...图片 图片 图片 2019年 2019年之前基本还没有多少人使用,在码云上面也就几十号人关注,截止到现在已经有近千人关注, 图片 之后采用了最新的tp5.1版本和layui,在界面和功能得到了很大的提升...,系统开始得到很多人的关注,并作为商业使用,同时申请了并获得了软件著作权。
因项目需求,需要用到连接两个库,所以封装了个方法,实例如下: tp3.2手册连接数据库 在公共的function.php加入封装的方法 function getCrmModel($name) {...// new的model可以根据自己的需求去更改 return new \Home\Model\CrmModel($name); } model代码 <?...); $this- dbName = C('CRM_DB.DB_NAME'); $this- tablePrefix = C('CRM_DB.DB_PREFIX'); } } 在公共的config...用户名 'DB_PWD' = 'root', // 密码 'DB_PORT' = '3306', // 端口 'DB_PREFIX' = 'test_', // 前缀 ), 总结 以上就是这篇文章的全部内容了...,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。
领取专属 10元无门槛券
手把手带您无忧上云