为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕尼黑5688855 2022-01-14 17:16:52
我有这样的事情:public function postRemove(LifecycleEventArgs $args){    $entity = $args->getObject();    $entity->getId();}$entity 具有所选表中的所有属性,但 id 始终为 null我希望它具有我要删除的项目的 ID。
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

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


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


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


function preRemove(LifecycleEventArgs $args) {

   $object = $args->getObject();

   $object->storeId($object->getId());

}

function postRemove(LifecycleEventArgs $args) {

   $object = $args->getObject();

   $id     = $object->getStoredId();

}


查看完整回答
反对 回复 2022-01-14
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

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


function preRemove(LifecycleEventArgs $args) {

   $object = $args->getEntity();

   $this->objectId($object->getId());

}

然后在 postRemove 中:


function postRemove(LifecycleEventArgs $args) {

   $id     = $this->objectId;

}


查看完整回答
反对 回复 2022-01-14
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信