thinkphp5 如果更新直接调用savesaveAll(事先未查询)或新添加数据时,使用了事件afterbefore报错字段属性缺少问题

tech2026-02-25  1

先查询再save/saveAll太麻烦了。这样就省事多了

// Model模型类save函数修改 // 更新数据 // 找到代码 $this->autoCompleteData($this->auto); 在下行增加 // 数据自动完成 $this->autoCompleteData($this->auto); // begin 如果是用model直接调save/saveAll $pk = $this->getPk(); if ($this->isUpdate) { // 如果是用model直接调save/saveAll if(!$this->origin){ foreach ((array) $pk as $key) { if (!empty($data[$key])) { $this->data = $this->origin = $this->get($data[$key])->toArray(); $this->data = $data + $this->data; break; } } } } // end // 添加数据 // 获取自动增长主键 if ($result && $insertId = $this->getQuery()->getLastInsID($sequence)) { foreach ((array) $pk as $key) { if (!isset($this->data[$key]) || '' == $this->data[$key]) { $this->data[$key] = $insertId; $this->data = $this->get($insertId)->toArray() + $this->data;//增加这行代码 } } }

 

 

最新回复(0)