Symfony Doctrine2实体管理器刷新不更新关联实体
说明: 我有一个用户实体,它有一个概要文件实体 问题:Symfony Doctrine2实体管理器刷新不更新关联实体,symfony,orm,doctrine-orm,Symfony,Orm,Doctrine Orm,说明: 我有一个用户实体,它有一个概要文件实体 问题: 我从数据库中加载用户,只更改其配置文件中的一些属性 我呼吁: $entityManager->flush($user) 但是用户没有更改任何属性,只是更改了其配置文件 我已经在用户对象内的profile属性上设置了cascade={“persist”} 如果我打电话给: $entityManager->flush() 注意:没有对象本身。我真的不想在没有对象作为参数的情况下这样做,因为我可能会刷新其他实体中的一些其他更改,而我在那个
- 我从数据库中加载用户,只更改其配置文件中的一些属性
- 我呼吁: $entityManager->flush($user)
- 但是用户没有更改任何属性,只是更改了其配置文件
- 我已经在用户对象内的profile属性上设置了cascade={“persist”}
- $entityManager->flush()李>
注意:没有对象本身。我真的不想在没有对象作为参数的情况下这样做,因为我可能会刷新其他实体中的一些其他更改,而我在那个特定时刻没有意识到这些更改。看起来,当有人以对象作为参数调用flush方法时,它没有意识到级联持久性。有什么办法解决这个问题吗?因为您正在修改配置文件,而不是您应该使用的用户:
$entityManager->flush($profile)代码>为什么不$entityManager->flush($profile)代码>?是的,刷新配置文件也可以,可能是一个解决方案,但我认为刷新用户将是一个更好的解决方案。为什么?您正在修改配置文件,而不是用户。这是正确的行为。我认为由于cascade={“persist”},它还应该刷新配置文件的更改。很好,我会按照你的建议解决问题,不管怎样我都喜欢。:)条令在$user
中没有看到任何更改,因此它不会对persist执行任何操作。