Thinkphp
-
为ThinkPHP8快速开启跨域请求
在此前,要在TP8中启用跨域请求,是要折腾一下的。时至今日,TP官方不知道什么时候,新增了一个官方组件:topthink/think-cors。通过这个组件,1分钟就能快速搞定跨域请求。 安装拓展 可以看到现在还是1.0版本,但是已经足够好用! 配置 配置文件位于 config/cors.php,默认配置下,是没有“启用”的,跨域请求仍然会报错。 需要修改配…
-
ThinkPHP 8 中,为 BaseController 添加一个公共拦截器
我们的需求是,所有数据接口必须验证token后,才予以放行返回数据,虽然可以在每个方法中判断,但第一是不优雅,第二是量一多难免有遗漏的。 我们这么操作的前提是,所有 Controller 都继承自 BaseController ,如果不是,则在对应的父类进行同样的操作即可。 获取当前访问路径 通过 $pathinfo = $this->request-…
-
ThinkPHP8 构造函数 __construct 中使用 redirect 无效的解决办法
定义了一个构造函数,代码如下: 但是发现return redirect(‘/admin/login’)不生效,特意加了die也一样无法执行。 通过了解,发现这里需要手动调用执行,也就是执行当前响应对象的send方法输出。 修改后的代码如下所示: 再次访问,重定向即可生效。
-
解决一个困惑了一段时间的问题,ThinkPHP6报错只返回状态码500而不返回任何错误内容
此前我一直以为是postMan出问题,只有状态码500,并没有任何错误输出。 用浏览器一样捕获不到错误信息。 今天用Python测试了一下,发现仍然没有,所以基本可以确定是TP根本就没有发送任何错误信息,只有一个500的状态头信息。 原因 经过查询,了解到原因是:如果你的计算机名为中文,或者某些文件夹名包含中文,那就会因为字符编码,而造成json_encod…
-
Win下Mysql因意外关机导致数据表损坏的修复
昨天把系统升级到22H2,当时还在coding,明明已经点了稍后重启,但是岂料Windows还是很执着的告知我电脑即将重启。 随后电脑重启,完全没有想到这次重启会导致数据表损坏。 在TP6中,报错如下:
1SQLSTATE[HY000]: General error: 145 Table '.\api_v3_lanluo_cn\goods' is marked as crashed and should be repaired大意是这个表被标记为损坏,是否修复。 显然TP不能直接修复这个问题,所以要解决这个问题,还是…
-
再谈Thinkphp6如何解决跨域请求
此前已经讲过两次关于跨域的问题。 VUE前后端分离时,本地小皮面板400等错误解决 VUE和Thinkphp6做前后端分离时,跨域请求怎么设置?Access-Control-Allow-Origin设置教程 但是近期进行复核是发现,如果每次请求都要进行跨域预请求的话,可能最终还是会导致无法请求到资源。 以Thinkphp6为例,在开启路由中间件的前提下,需要…
-
Thinkphp6或者5中,前端返回上一页(上一步)的两种方法
因为TP6中,默认是没有集成$this->success等路由跳转方法,可能在看文档的时候,就找不到返回上一页的路由方法,这里做一下记录。 其实TP一直以来的方式,都是通过:
1$_SERVER.HTTP_REFERER或者也可以写作
1$_SERVER['HTTP_REFERER']那么其实在前端的话,就应该这样写:[c…
-
TP6修改查询数据数组时报错Indirect modification of overloaded element of think\Collection has no effect解决办法
TP6操作DB类查询数据库中查询到的数据,修改元素时,会报错:
1Indirect modification of overloaded element of think\Collection has no effect解决的办法简单,引用一下数据库查询到的数据即可。比如:
12$list = Db::table('bill_data')->where($where)->where('state','新增')->whereOr('delete_time','not null')->order('update_time desc')->limit(intval($from),intval($limit))->select();$list = $list->all();第二行就是,随后继续foreach等操作即可。
-
VUE前后端分离时,本地小皮面板400等错误解决
此前,我们已经在thinkphp中配置了全局中间件,允许跨域请求。 VUE和Thinkphp6做前后端分离时,跨域请求怎么设置?Access-Control-Allow-Origin设置教程 但在本地开发过程中,我发现总是报错400,无法进行请求,console中也提示跨域错误。
1origin 'http://localhost:9000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.所以,除了TP本…
-
全民图床,2022年八款开源免费的图床相册程序推荐
人在江湖,难免要用到图床。作为分享也好,自己收藏也罢,搭建一个图床还是有用的。 如果你手上有闲置的服务器、云主机,与其放着吃灰或者挂探针,不如弄一个图床吧。 这里整理了10款比较热门的图床程序。 一、Chevereto-Free 虽然我内心是极力拒绝和否定Chevereto的,但奈何市场占有率高,所以这里姑且第一个推荐。 特别强调,Chevereto作者性情…