教义可责备: on="change" 不起作用,而 on="create" 和 "update" 起作用

Bla*_*sad 5 symfony doctrine-orm

我正在尝试结合 Doctrine 的扩展 Blameable 和 Softdeleteable:当我执行时$em->remove($myEntity);,我想获取字段deleteddeletedBy相应更新。

use Gedmo\Mapping\Annotation as Gedmo;

/**
 * @Gedmo\SoftDeleteable(fieldName="deleted", timeAware=false)
 */

[...]

/**
 * DateTime of softdeletion
 * @var \DateTime
 * 
 * @ORM\Column(name="deleted", type="datetime", nullable=true)
 * @Assert\DateTime()
 */
private $deleted;

/**
 * Softdeleted by
 * @var MyProject\UserBundle\Entity\User $deletedBy
 *
 * @Gedmo\Blameable(on="change", field="deleted")
 * @ORM\ManyToOne(targetEntity="MyProject\UserBundle\Entity\User")
 * @ORM\JoinColumn()
 */
private $deletedBy;
Run Code Online (Sandbox Code Playgroud)

Blameable(on="create")我对created/createdBy(使用)和updated/updatedBy(使用)有类似的配置Blameable(on="update")

更奇怪的是,如果我用下面的代码替换上面的代码,该字段deletedBy就会正确更新:

/**
 * Softdeleted by
 * @var MyProject\UserBundle\Entity\User $deletedBy
 *
 * @Gedmo\Blameable(on="update")
 * @ORM\ManyToOne(targetEntity="MyProject\UserBundle\Entity\User")
 * @ORM\JoinColumn()
 */
private $deletedBy;
Run Code Online (Sandbox Code Playgroud)

所以看来这只是Blameable(on="change", field="deleted")不起作用的部分,我不知道为什么......