关于一对多编辑问题
如图所示:属性和属性值是‘一对多’的关系,在编辑属性和属性值的时候,提交的数据中,有的属性值是新增的,有的是修改的,有的被删除了,那么后端处理时如何判断?
然后,我是用的一个笨方法,通过有无属性值‘id’区分 ‘新增’ 和 ‘编辑’,然后再找到 ‘删除的’。想问一下有没有好的方法?
让前端带上id和status删了status就=0
一对多的多那个表中所有数据先删之后统一
insert
删除旧数据,在将新数据插入不就行了,不用纠结更新
简单粗暴点,就是直接删除再插入,精细点,就用array_diff。array_diff($newData,$oldData)就是新增的,array_diff($oldData,$newData)就是删除的,$newData减去新增的就是要update的。
前端把最终数据传过来,先array_column老数据id,然后whereNotIn多表删除掉其他老数据,更新老数据,新增新数据