在教义协会参考手册中提到
当然,在正确的应用程序中,双向关联的语义由应用程序开发人员正确维护(这是他的责任)
我还没有找到关于开发人员应该如何维护这种关联的具体示例。任何帮助,将不胜感激。
symfony 文档中有一个非常好的例子:http ://symfony.com/doc/master/cookbook/form/form_collections.html
页面中间的地方写着:
第二个潜在问题涉及教义关系的拥有方和反方 。在此示例中,如果关系的“拥有”方是“任务”,则持久性将正常工作,因为标签已正确添加到任务中。但是,如果拥有方位于“Tag”上,那么您需要做更多的工作来确保修改关系的正确方。
在这个特定示例中,您提到的学说文档将与实体代码的这一部分有关:
// src/Acme/TaskBundle/Entity/Task.php
// ...
public function addTag(ArrayCollection $tag)
{
$tag->addTask($this);
$this->tags->add($tag);
}
和
// src/Acme/TaskBundle/Entity/Tag.php
// ...
public function addTask(Task $task)
{
if (!$this->tasks->contains($task)) {
$this->tasks->add($task);
}
}