我正在研究https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/working-with-associations.html,但我无法弄清楚级联合并的作用。我在其他地方看到了
$new_object = $em->merge($object);
基本上基于$object
创建一个新的托管对象。这是对的吗?
答案 0 :(得分:22)
$em->merge()
用于获取已从实体管理员的上下文中删除并重新附加实体的实体。
级联合并会将此行为扩展到要合并的实体的关联实体。这意味着更改会级联到关联,而不仅仅是要合并的实体。
答案 1 :(得分:0)
我知道这是一个古老的问题,但我认为值得一提的是$em->merge()
已过时,将很快被删除。
不建议使用合并操作,并将在Persistence 2.0中将其删除。 合并应该是应用程序业务领域的一部分,而不是 比ObjectManager的通用操作更重要。
还请阅读此文档v3,他们希望实体如何存储
最好避免以序列化格式存储实体,例如 作为$ _SESSION:而是存储实体标识符或原始数据。