我有这样的东西:
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;
}