如何在 postRemove 事件期间获取实体的对象 ID?
How do I get the object id of an entity during the postRemove event?
我有这样的东西:
public function postRemove(LifecycleEventArgs $args)
{
$entity = $args->getObject();
$entity->getId();
}
$entity
具有所选 table 中的每个 属性,除了 id,它始终是 null
我希望它具有我要删除的项目的 ID。
如果您已经删除了对象,它就不再有 ID。
您可能想在 id
仍然可用的地方使用 preRemove
。
您甚至可以使用 preRemove
将 id 存储在对象的非映射 属性 中,然后从 postRemove
.[=16 上的对象获取该 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());
}
然后在postRemove:
function postRemove(LifecycleEventArgs $args) {
$id = $this->objectId;
}
我有这样的东西:
public function postRemove(LifecycleEventArgs $args)
{
$entity = $args->getObject();
$entity->getId();
}
$entity
具有所选 table 中的每个 属性,除了 id,它始终是 null
我希望它具有我要删除的项目的 ID。
如果您已经删除了对象,它就不再有 ID。
您可能想在 id
仍然可用的地方使用 preRemove
。
您甚至可以使用 preRemove
将 id 存储在对象的非映射 属性 中,然后从 postRemove
.[=16 上的对象获取该 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());
}
然后在postRemove:
function postRemove(LifecycleEventArgs $args) {
$id = $this->objectId;
}