使用onethink后台建模的时候,如果选择了上传图片类型,则会碰到这样一个问题:同一张图,只能传一次。具体来说,在A表的img字段里选择了上传图片,在B表的img字段也选择了上传图片,在A表上传的图片1,在B表再选择图片1上传,虽然显示上传成功,但是你再去模型A的列表页编辑数据,发现图片1不见了。
这是onethink后台的一个BUG,在上传图片时,如果发现图片的哈希值与之前上传过的相同,则会删除原图片的记录,重新生成一条记录(记录指的是ontehink_picture表)。
解决办法是注释掉FileModel和PictureModel的removeTrash方法和调用removeTrash方法的代码:
// $setting['removeTrash'] = array($this, 'removeTrash');
// /**
// * 清除数据库存在但本地不存在的数据
// * @param $data
// */
// public function removeTrash($data){
// $this->where(array('id'=>$data['id'],))->delete();
// }