如何在删除后事件期间获取实体的对象 ID?



我有这样的东西:

public function postRemove(LifecycleEventArgs $args)
{
$entity = $args->getObject();
$entity->getId();
}

$entity具有所选表中的每个属性,但 id 除外,ID 始终处于null

我希望它具有我要删除的项目的 ID。

如果已删除该对象,则它不再具有 id。

您可能希望在id仍然可用的情况下使用preRemove

您甚至可以使用preRemove将 id 存储在对象的非映射属性中,然后在postRemove上从对象获取该 id。

function preRemove(LifecycleEventArgs $args) {
$object = $args->getObject();
$object->storeId($object->getId());
}
function postRemove(LifecycleEventArgs $args) {
$object = $args->getObject();
$id     = $object->getStoredId();
}

服务在 Symfony 中是单例的。您可以像代理一样使用它们。 在侦听器中创建属性$objectId。然后按照这个操作:

function preRemove(LifecycleEventArgs $args) {
$object = $args->getEntity();
$this->objectId($object->getId());
}

然后在帖子中删除:

function postRemove(LifecycleEventArgs $args) {
$id     = $this->objectId;
}

相关内容

  • 没有找到相关文章

最新更新