如何将已删除的属性设置为 true,而不是删除 Symfony 中的相关教义实体



我正在构建一个允许用户为广告商创建报告的应用程序。 设置实体时,报表对象和广告商对象之间存在关系,以便广告商有一个 getReports() 方法来获取它们。

我想更改应用程序,以便它只是将"已删除"属性更改为 true,而不是实际删除实体。 这部分没有问题,但我不确定如何做到这一点,以便广告商实体上的 getReports() 仅返回已删除属性为 false 的广告商的报告。

如果您有任何建议,请告诉我如何根据Symfony最佳实践来完成。

你应该看看Gedmo Doctrine Extensions。 http://atlantic18.github.io/DoctrineExtensions/

专门针对您的情况: http://atlantic18.github.io/DoctrineExtensions/doc/softdeleteable.html

TLDR;它们允许您以您想要的方式配置实体的行为,因此例如,当您"删除"实体时,Gedmo 的侦听器会将其deleted值设置为当前日期时间。现在,您的数据库中仍有该记录not nulldeleted列的值将其标记为"软删除",因此在查询时,它不会被返回(因为 Doctrine 知道如何查询这些内容并会添加一个条件,即:... where deleted ...),除非您明确表示要查看这些软删除的记录。

最新更新