首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SoftDelete,Relations和SonataORMAdminBundle

SoftDelete,Relations和SonataORMAdminBundle
EN

Stack Overflow用户
提问于 2013-11-18 20:32:19
回答 1查看 1.3K关注 0票数 1

我正在使用SonataAdminBundle --更确切地说是SonataORMAdminBundle和Doctrine --来做我的一些管理工作。到目前为止,这是一个非常有用的捆绑,然而,对实体的感官删除有点棘手。

假设一个旅游实体有一个卡车和一个拖车实体,但是当一个卡车被丢弃时,它不应该再出现在整个管理应用程序中。尽管如此,可能仍然存在与这辆卡车有关的遗留旅游实体。

因此,当用户可能在管理中编辑这样的遗留旅游时,还不清楚如何解决这个问题,实体选择是否消失了?

我看过SoftDelete扩展Bundles,但是它似乎需要大量的工作来调整所有的具体情况。

是否有一种简单的方法在捆绑层次上,还是在一般理论中解决这类问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-22 10:16:01

当需要时,在Sonata套件中实现此行为的方式是通过实体中的一个新的布尔字段:“已启用”。然后我们在它上添加一个过滤器来显示它或不显示它,并且永远不会实际删除使用中的对象。软删除是一种特定于客户端的操作(您可能有专门的业务规则和它一起),我们没有在Sonata套件中实现它。在这种情况下,您的实现应该取决于您的需要。

但是,我们在EntityAuditBundle中集成了来自Simplethings (https://github.com/simplethings/EntityAudit)的SonataDoctrineORMAdminBundle:每个具有Admin类的实体都会被自动审计。这允许跟踪在已审计实体上完成的每个编辑。(不一定是你想要的东西,但可能还是很有趣)。

最后,正如您所提到的,SoftDelete可能会帮您完成任务。但是您可能更愿意拥有自己的事件侦听器(例如使用preRemove ),并以自己的方式实现解决方案。

如果您认为您的解决方案可能值得在SonataDoctrineORMAdminBundle中集成,可以在github上创建一个问题,我们将讨论它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20057276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档