
thinkphp
10年老码农
10年IT从业经验,从事java、PHP后台、物联网开发工作。
展开
-
thinkphp 关联查询with生成的sql是怎么查看?
现在用thinkphp,基本用它的orm来做数据模型对象的关联。比如主表,子表的关系,用hasMany。用时一般是这样关联子表(item)这样用是方便,但在查询数据量大时,就很鸡肋,为什么呢?因为这样的关联查询生成的sql语句是用in方式。我特确查阅了官方文档,明确说明hasOne有join,in方式。用join时,要设置setEagerlyType(0)hasMany没有说明,但看它生成的sql是in。怎么查看它生成的sql呢?在项目的根目录下,...原创 2022-02-24 09:55:41 · 1123 阅读 · 0 评论 -
thinkphp5 接口被重定向302响应
从gitlab接到代码下来后,调试接口,发现被定向到 admin/login下,状态码是302。我就纳闷了,之前好好的,在生产上跑着,怎么今天就出bug了呢?后来查了鉴权的中间件,一一的看了每行代码,没有 redirct 呀。后来想起,thinkphp 有一个tags.php的行为管理类。看了项目源码果然,有这么一个。好家伙,难到我的代码没有同步以gitlab嘛,才导致从上面拉取下来的代码有问题?这个后面再排查吧。看了这个tags.php,它进行了鉴权,如果不通过,则跳到admin/logi原创 2021-08-03 23:15:07 · 1639 阅读 · 1 评论 -
thinkphp5去除index.php的几大方式,根治各种不行
在tp5中官方给出的去隐藏index.php方法如下:[ Apache ]httpd.conf配置文件中加载了mod_rewrite.so模块AllowOverride None 将None改为 All把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下<IfModule mod_rewrite.c> Options +FollowSymlinks -Multivi...原创 2018-06-12 12:36:49 · 14955 阅读 · 4 评论 -
Thinkphp5.0中input函数用法
1.input('get./s') : 强制转换为字符串类型 input('get./a') : 强制转换为数组类型input('get./d') : 强制转换为整型类型 input('get./b') : 强制转换为布尔类型input('get./f') : 强制转换为浮点类型注意:ThinkPHP5.0版本默认的变量修饰符是/s,如果你要获取的数据为数组,请一定注意要加上 ...转载 2018-05-22 09:16:24 · 14446 阅读 · 0 评论 -
thinkphp使用paginate()分页后给结果集追加字段或数据
thinkphp使用分页类paginate后,怎么增加字段?有两种办法:1、使用paginate对象的each方法,传入回调,在回调函里写(本方法参考网上)。public function index(){ $pagenum = 20;//默认分页条数 //查询数据 $salesOrderPrepareModel = new salesOrderPrepareModel(); $list = $salesOrderPrepareModel->pa原创 2021-01-26 10:49:25 · 2742 阅读 · 0 评论 -
thinkphp5.x 模型关联查询性能慢嘛?
在开发过程中,有的人喜欢用子查询,有的人喜欢用模型关联。而使用子查询的同事喜欢怼用模型的,认为使用模型的查询性能不高!为了这个问题,今天特地看了thinkphp5的查询sql日志。使用一对多关联,代码如图产生的sql日志如下综上所述,整个sql查询花费在30ms内。所以如果用子查询,则虽然可以在10ms内,但需要手动写sql,手动组装数据,费人力。结论:1、简单的查询,可以用模型 关联,复杂的,则用子查询吧。...原创 2020-12-27 14:30:18 · 809 阅读 · 0 评论 -
接口返回的json字符串中,多了一个红点,原来是文件被加了bom头
项目更新后,发现某个接口返回的json中,多出来一个红点,导致json_decode()失败,返回数据为null,程出错。后来经过比对,返回的json字符串中,的确多了出来3个字符。strlen出来,一个是255长,一个是258长,但我们又看不到。后来,发给it圈内大佬打开,mac上有明显提示,多出来的3个字符用bin2hex($str)转下或是json_encode,都可以看到到此,可以确定是被加bom头的原因。bom头,之前看文章有了解过,但自己没碰到过。原创 2020-12-11 08:59:33 · 1773 阅读 · 0 评论 -
thinkphp5接口开发中,authorization是关键词?header取不到。
thinkphp5接口开发中,authorization是关键词?header取不到。如下图:解决方案(参考tp):对于Apache,如果 header 中取不到 Authorization,在 .htaccess 中加上一行:SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0对于 nginx 需要在 server 的配置之下加上一行“:add_header Access-Control-Allow-Headers "Author..原创 2020-10-12 09:46:48 · 1048 阅读 · 0 评论 -
ThinkPHP支持的URL模式有四种普通模式、PATHINFO、REWRITE和兼容模式
URL模式 URL_MODEL设置普通模式 0PATHINFO模式 1REWRITE模式 2兼容模式 3 如果你整个应用下面的模块都是采用统一的URL模式,就可以在应用配置文件中设置URL模式,如果不同的模块需要设置不同的URL模式,则可以在模块配置文件中设置。普通模式普通模式也就是传统的GET传参方式来指定当前访问的模块和操作,例如: http://...转载 2018-06-12 12:41:21 · 2872 阅读 · 0 评论 -
thinkcmf 在新窗口打开链接方法
详情今天在用THNIKCMF 的时候,想做一个新在新窗口打开链接方法,试了一下,是这个。现分享给大家。原创 2015-12-03 21:48:52 · 1396 阅读 · 0 评论