关于tp5的Model类 save多次调用

浏览:190 发布日期:2019/01/12 分类:求助交流
最近项目发现,save函数一周期多次调用,会出现一些字段不保存的情况,
源码
$this->allowField(true)->isUpdate()->save($data,$where);
就尝试看了一下源码,save函数的最后一行
// 重新记录原始数据
$this->origin = $this->data;
将此次保存的数据作为了一个原始数据存进了model对象内的 $this->origin
但是save的预处理有一步
public function getChangedData()
{
$data = array_udiff_assoc($this->data, $this->origin, function ($a, $b) {
if ((empty($b) || empty($b)) && $a !== $b) {
return 1;
}
return is_object($a) || $a != $b ? 1 : 0;
});
它会比较目前要存的数据和$this->origin的不同然后决定哪些字段需要存入
这也就意味着每次存进去的数据,都要和上次存进去的数据比较异同,看不懂这里的逻辑?????
最佳答案
评论( 相关
后面还有条评论,点击查看>>