我有这样的事情: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();
}
蛊毒传说
TA贡献1895条经验 获得超3个赞
Symfony 中的服务是单例的。您可以像使用代理一样使用它们。$objectId在侦听器中创建一个属性。然后按照这个:
function preRemove(LifecycleEventArgs $args) {
$object = $args->getEntity();
$this->objectId($object->getId());
}
然后在 postRemove 中:
function postRemove(LifecycleEventArgs $args) {
$id = $this->objectId;
}
- 2 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消