教条协会拥有vs反面

时间:2013-05-10 06:49:52

标签: php database hibernate symfony doctrine-orm

在教条协会reference manual中提到了

  

当然,在正确的应用程序中,双向关联的语义由应用程序开发人员正确维护(这是他的责任)

我无法找到关于开发人员应如何维护此关联的具体示例。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

symfony文档中有一个非常好的例子:http://symfony.com/doc/master/cookbook/form/form_collections.html

在页面中间附近声明:

  

第二个潜在问题涉及Owning Side and Inverse Side   的学说关系。在这个例子中,如果是“拥有”的一面   关系是“任务”,然后持久性将正常工作   标签已正确添加到任务中。但是,如果拥有一方   “标签”,那么你需要做更多的工作来确保这一点   关系的正确方面被修改。

在这个特定示例中,您提到的学说文档将与实体代码的这一部分相关:

// 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);
    }
}