在Doctrine / Symfony3中,我如何最好地检查是否要更改记录以删除/创建新记录而不是更新?
背景信息:每次供应商发送一个大型价目表csv时,我都会将其加载到数据库中。重要的是,更新的价格不会反映在先前下达的订单中。当然,每次上传列表时我都可以软删除所有对象,并创建新的对象,但这会使数据库不必要地变大,并且需要不必要的调用。
因此,我想软删除一个对象并仅在它被更改时创建一个新对象。
答案 0 :(得分:0)
我理解您要求的工作流程为:
1)使用https://github.com/simplethings/EntityAudit在变更时创建新对象
2)添加侦听prePersist
(或preFlush
/ preUpdate
的EventSubscriber;选择最适合您的那个),并使用上述包中的类似过程(寻找{ {1}} / xxxSubscriber
)软删除它。