gon-zoo82/soft-deleteable-extension-bundle

关于此包的最新版本(1.4.1)没有可用的许可证信息。

为gedmo的软删除监听器提供额外功能

安装: 16

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 40

类型:symfony-bundle

1.4.1 2019-03-15 09:07 UTC

This package is auto-updated.

Last update: 2024-09-22 19:28:25 UTC


README

扩展自2012年以来一直存在此问题的Gedmo的软删除监听器:doctrine-extensions/DoctrineExtensions#505

为Doctrine实体关联提供onSoftDelete功能。此功能的行为类似于SQL中的onDelete函数(当所有者端被删除时)。它将防止在软删除引用时发生Doctrine错误。

级联删除实体

当父记录软删除时(软删除)删除实体

 @Evence\onSoftDelete(type="CASCADE")

将引用设置为null(而不是删除实体)

 @Evence\onSoftDelete(type="SET NULL")

通过一些标记为继任者的属性替换引用(必须为同一实体类)

 @Evence\onSoftDelete(type="SUCCESSOR")

实体示例

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Evence\Bundle\SoftDeleteableExtensionBundle\Mapping\Annotation as Evence;

/*
 * @ORM\Entity(repositoryClass="AppBundle\Entity\AdvertisementRepository")
 * @Gedmo\SoftDeleteable(fieldName="deletedAt")
 */
class Advertisement
{

    ...

    /**
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Shop")
     * @ORM\JoinColumn(name="shop_id", referencedColumnName="id")
     * @Evence\onSoftDelete(type="CASCADE")
     */
    private $shop;

    ...
}

安装

使用composer安装

composer require evence/soft-deleteable-extension-bundle

将捆绑包添加到app/AppKernel.php

# app/AppKernel.php

$bundles = array(
    ...
    new Evence\Bundle\SoftDeleteableExtensionBundle\EvenceSoftDeleteableExtensionBundle(),
);