gpt4 book ai didi

Symfony:使用 SoftDeleteable 行为扩展时如何级联取消删除?

转载 作者:行者123 更新时间:2023-12-02 12:09:47 27 4
gpt4 key购买 nike

我的实体 User 通过 OneToOne 关系与其他实体相关,并且我正在对所有实体进行级联“删除”。

我正在使用 SoftDeleteable 行为扩展,因此当我删除 User 时,该实体实际上并未从数据库中删除:deletedAt 字段只是设置为 DateTime(now),相关实体的所有 deletedAt 字段也是如此。

现在,当我想恢复用户时,我按照文档中的建议进行操作:

$em->getFilters()->disable('soft-deleteable');
$user->setDeletedAt(null);

我的问题是,当我这样做时,所有相关实体都被删除。知道如何将 setDeleted(null) 自动级联到所有这些吗?

最佳答案

从未使用过此扩展,但查看 GH 存储库上的未解决问题,我可以看到其中很多与使用关联时的类似问题相关:

我首先尝试显式禁用每个相关实体的过滤器:

$filter = $em->getFilters()->enable('soft-deleteable');
$filter->disableForEntity('Entity\Article');
$filter->disableForEntity('Entity\SomeOtherEntity');

否则,我会添加一个监听器(并将其绑定(bind)到 Doctrine 事件之一)以将恢复级联到软删除之外。

关于Symfony:使用 SoftDeleteable 行为扩展时如何级联取消删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com