gpt4 book ai didi

symfony - 使用 SonataAdminBundle 对实体进行自定义删除处理

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

我想实现一些自定义删除处理。我们有一些类型的实体只在数据库中被标记为已删除。真正从数据库中删除是由一个预定的过程完成的。

现在可以很容易地替换 Admin 类中的 delete 方法,但是我在批处理操作方面遇到了一些问题。在我看来,创建子包来修改常规或在 CRUDController 类中创建新方法没有多大意义。

所以我倾向于创建一个自定义 ModelManager(基于 DoctrineORMAdminBundle 之一)并将业务逻辑放入其中。我找不到关于这部分的任何文档。

这是一个干净的解决方案吗?有点可惜,逻辑散布到这么多地方。 :/

干杯马蒂亚斯

最佳答案

您可以使用 SoftDeleteable doctrine behavior

安装 Gedmo Doctrine2 extensions bundle

安装和配置包后,更新您的实体以添加软删除行为:

namespace Entity;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
*/
class Article
{

# ...

public function getDeletedAt()
{
return $this->deletedAt;
}

public function setDeletedAt($deletedAt)
{
$this->deletedAt = $deletedAt;
}
}

我已经在 Sonata 上使用过它,效果很好

关于symfony - 使用 SonataAdminBundle 对实体进行自定义删除处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466902/

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