【问题标题】:Symfony2: Doctrine extension Softdeleteable is permanently deleting Translatable elementsSymfony2:Doctrine 扩展 Softdeleteable 正在永久删除可翻译的元素
【发布时间】:2015-06-06 21:31:03
【问题描述】:

我正在使用最新版本的 dev-master 带有 Symfony2.7.0 的 Doctrine 扩展。 我向我的实体添加了两个扩展 SoftdeleteableTranslatable。问题是当实体被软删除时,它的翻译被硬删除。

有解决办法吗?

编辑
我在 Github 上找到了这个 issue,但我无法给出太多答案。

【问题讨论】:

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


    【解决方案1】:

    在查看了 github 问题和建议的“修复”以及咨询专家后,我认为这比它的价值更麻烦。
    问题显然是监听器,我不应该弄乱vendor 下的捆绑包。
    当可翻译从我的软删除对象中获得“删除”时,我的对象的这些“子项”并不是它们自己的真正对象,因此无法配置为软删除。

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

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

    这意味着要更改很多查询,但这是等待修复时最简单的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 2013-10-07
      • 2013-02-03
      • 2020-01-20
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多