Php 在Symfony中删除对象时,如何删除所有关联的安全条目?

Php 在Symfony中删除对象时,如何删除所有关联的安全条目?,php,symfony,acl,Php,Symfony,Acl,我正在做一个简单的任务管理器项目,我使用Symfony的内置ACL系统来处理对域对象(任务)的访问。Symfony文档中描述了授予用户对特定对象的访问权限以及检查用户是否有权对对象执行任何操作的过程,但我找不到有关如何在删除对象时分离与对象关联的ACL项的任何信息。现在,当我删除一个对象时(我还没有为此创建一个控制器,并直接在phpmyadmin中执行),在 与之关联的acl\u对象\u标识和acl\u条目保持不变,但显然它们也应该删除。我如何做到这一点?如果有人面临类似的问题,下面是我在深入了

我正在做一个简单的任务管理器项目,我使用Symfony的内置ACL系统来处理对域对象(任务)的访问。Symfony文档中描述了授予用户对特定对象的访问权限以及检查用户是否有权对对象执行任何操作的过程,但我找不到有关如何在删除对象时分离与对象关联的ACL项的任何信息。现在,当我删除一个对象时(我还没有为此创建一个控制器,并直接在phpmyadmin中执行),在
与之关联的
acl\u对象\u标识
acl\u条目
保持不变,但显然它们也应该删除。我如何做到这一点?

如果有人面临类似的问题,下面是我在深入了解Symfony classes api参考后最终如何解决的:

    //...
    $em->remove($task);

    //retrieving object's Object Identity
    $strat = new ObjectIdentityRetrievalStrategy();
    $taskObjectIdentity = $strat->getObjectIdentity($task);

    $aclProvider = $this->get('security.acl.provider');
    $aclProvider->deleteAcl($taskObjectIdentity);

    $em->flush();