我使用Symfony2.7.0的Doctrine扩展的最新版本dev-master
。
我已将扩展名Softdeleteable
和Translatable
添加到我的实体中。问题是,当实体被软删除时,其翻译会被硬删除。
这有解决方法吗?
修改
我在Github上找到了这个issue,但我无法做出很多答案。
答案 0 :(得分:1)
在审查了github问题以及提议的“修复”和咨询专家之后,我认为这比它的价值更麻烦。
问题显然是列表工具,我不应该在vendor
下弄乱这些包
当翻译从我的软删除对象中获取“删除”时,我的对象的这些“子”不是他们自己的对象,因此不能被配置为软删除。
我的解决方案是添加deletedAt
属性,默认情况下为NULL,当我在我的控制器中执行$entityManager->delete($object)
时,我现在只需要将deletedAt
的值更改为当前日期时间。 $object->setDeletedAt($date)
。
在检索对象时,我只需添加一个子句SELECT * FROM table_name WHERE deletedAt IS NULL;
这意味着更改了大量查询,但在等待修复时这是最简单的选项。