thinkphp5
韭零后程序猿
一个90后程序猿的技术分享
展开
-
thinkphp5模型更新save和软删除delete的坑点和理解
问题一:循环更新时只有第一条数据更新成功,其它数据都不更新。官方手册中提到注意不要在一个模型实例里面做多次更新,会导致部分重复数据不再更新,正确的方式应该是先查询后更新或者使用模型类的update方法更新。只是说明了问题,但没有解释为什么,所以就没注意,导致出现这个问题。为什么会有这个问题?在Model.php模型save方法最后大概1214行// 重新记录原始数据$this->origin = $this->data;origin这个属性记录了原始数据,不管是更新还是写入原创 2021-06-28 17:37:54 · 860 阅读 · 3 评论 -
thinkphp5数据集和模型关系的理解
数据集tp5可以通过全局配置'resultset_type' => 'collection',来定义查询的结果集类型. 可选值有collection,array,默认值是array 需要注意的是 即使配置的结果集是数组,使用模型查询出来的数据也只有最外层是数组,数据列表中的每个元素仍旧是对象 (可使用collection()助手函数转换为对象结果集) ,使用Db::name('use原创 2018-01-25 11:46:28 · 2297 阅读 · 1 评论 -
记一次后台被入侵的事件及反思
前几天后台被入侵,造成服务器瘫痪数个小时,虽然数据都没有丢失,但是也着实吓出一身汗,下面还原整个事件晚上10点左右,有人反应进不去app了,我还以为是玩笑,结果是服务器文件被删除了,赶紧停服务查看,config表被清空,菜单表被清空,查看日志发现有人使用admin账号在后台为所欲为,但是此人没有登录的日志,先不管,先恢复数据再说好在被删除的数据都有备份,直接恢复了,业务数据虽然被删除了一部分,...原创 2018-11-14 10:13:32 · 2453 阅读 · 0 评论 -
关于thinkphp5自定义标签库解析的问题
今天tp5的自定义标签库着实坑了我一把,原因有两点:1.预加载标签是有缓存的,你设置了预加载标签库,要删除缓存后重新刷新才有效,否则无效,这导致我调试的时候不知道自己到底设置对了没有2.我一直以为配置是会自动继承父级的配置的,也就是说,在模块中我只需要写好不同的配置就行,然后事实上一位数组的配置确实是这样,但是二位数组的时候第二层数组是会直接覆盖第一层数组的,举个栗子:猜猜结果是什么,对了...原创 2018-11-14 10:26:49 · 4114 阅读 · 5 评论