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

prg*_*grm 1 php doctrine symfony doctrine-orm

我有这样的事情:

public function postRemove(LifecycleEventArgs $args)
{
    $entity = $args->getObject();
    $entity->getId();
}
Run Code Online (Sandbox Code Playgroud)

$entity 具有所选表中除 id 外的所有属性,id 始终为 null

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

yiv*_*ivi 8

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

您可能希望preRemove在id仍然可用的地方使用。

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

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