如何使用 symfony 2 使工作可软删除且唯一的实体

Ben*_*cas 2 unique soft-delete symfony

我有软可删除和唯一实体字段。效果很好,但是...

如果记录被“软删除”删除,我将无法创建相同的记录。我认为这是因为数据库中的记录没有真正删除。但我需要这样做。

那么最好的方法是什么?

  1. 记录全部删除?那么 softdeletable 是一个不错的选择吗?
  2. 找到一种方法,如果记录被软删除,我可以再次创建相同的记录

感谢您的建议

小智 6

从数据库级别删除唯一约束后,您可以将其设置为您的实体。

@UniqueEntity(fields={"name", "deleteTime"}, ignoreNull=false)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果数据库中已有具有给定名称的“非软删除”行,则验证将失败,但如果设置了删除时间,则验证不会失败。