Symfony2:Doctrine扩展名Softdeleteable永久删除可翻译元素

时间:2015-06-05 20:43:27

标签: php symfony doctrine-orm doctrine soft-delete

我使用Symfony2.7.0的Doctrine扩展的最新版本dev-master。 我已将扩展名SoftdeleteableTranslatable添加到我的实体中。问题是,当实体被软删除时,其翻译会被硬删除。

这有解决方法吗?

修改
我在Github上找到了这个issue,但我无法做出很多答案。

1 个答案:

答案 0 :(得分:1)

在审查了github问题以及提议的“修复”和咨询专家之后,我认为这比它的价值更麻烦。
问题显然是列表工具,我不应该在vendor下弄乱这些包 当翻译从我的软删除对象中获取“删除”时,我的对象的这些“子”不是他们自己的对象,因此不能被配置为软删除。

我的解决方案是添加deletedAt属性,默认情况下为NULL,当我在我的控制器中执行$entityManager->delete($object)时,我现在只需要将deletedAt的值更改为当前日期时间。 $object->setDeletedAt($date)

在检索对象时,我只需添加一个子句SELECT * FROM table_name WHERE deletedAt IS NULL;

这意味着更改了大量查询,但在等待修复时这是最简单的选项。