我有两个模型:
线程 <-OneToMany-> 发布
有没有办法让双方都“拥有”?如果没有,这样做的首选方式是什么?
基本上,我想要这种情况:
// When called:
$post->setThread($thread);
$documentManager->persist($post);
// This gets called too, implicitly
$thread->addPost($post);
$documentManager->persist($thread);
// But also, when I call
$thread->addPost($post);
$documentManager->persist($thread);
// This gets called implicitly
$post->setThread($thread);
$documentManager->persist($post);
// When I remove post from thread
$thread->removePost($post);
$documentManager->persist($thread);
// This gets called implicitly
$post->setThread(null);
$documentManager->persist($post);
Etc.
如您所见,我需要具有持久性和更新级联的双向同步。
我可以在模型本身中指定此行为以使它们保持同步,但它存在一个问题:如果另一侧是已编辑的实体,则 Doctrine 不会自动保存拥有实体。
我正在使用 Doctrine Mongo ODM,但我想它对 ORM 应该没有太大的影响?