源码
$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_ob
});
它会比较目前要存的数据和$this->origin的不同然后决定哪些字段需要存入
这也就意味着每次存进去的数据,都要和上次存进去的数据比较异同,看不懂这里的逻辑?????
最佳答案