添加到 ArrayCollection 时,教义未链接到拥有对象

Posted

技术标签:

【中文标题】添加到 ArrayCollection 时,教义未链接到拥有对象【英文标题】:Doctrine not linking to owning object when adding to ArrayCollection 【发布时间】:2013-03-11 16:42:19 【问题描述】:

尝试在我的网站上创建新的Requirement 对象时遇到问题。在我的 Requirement 对象中,我有以下 Doctrine 字段:

/**
 * @ORM\OneToMany(targetEntity="Verification", mappedBy="requirement", cascade="persist", orphanRemoval=true)
 */
private $verifications;

我有以下方法:

public function addVerification($verification) 
    $this->verifications->add($verification);

在对象的构造函数中我初始化了ArrayCollection

/**
 * Constructor
 */
public function __construct() 
    parent::__construct();
    $this->verifications = new ArrayCollection();

但是,当尝试创建新的 Requirement 对象时,一切正常,除了创建的 Verifications 未链接到 Requirement 对象。 Requirement 对象和对应的Verification 对象都插入到数据库中,但Verification 对象的requirement_id 字段是NULL

我是否需要在我的Verification 对象中手动设置requirement 字段?当我对ArrayCollection 使用add 方法时,Doctrine 不会自动为我执行此操作吗?

【问题讨论】:

【参考方案1】:

不,它们不一定会更新。如果您有双向关系,您必须自己维护非欠方。您可以在文档中阅读此内容:

http://docs.doctrine-project.org/en/2.1/reference/association-mapping.html

如果不同时查看需求和验证定义,我很难向您提供具体信息。

【讨论】:

以上是关于添加到 ArrayCollection 时,教义未链接到拥有对象的主要内容,如果未能解决你的问题,请参考以下文章

将带有教义查询的虚拟字段添加到 symfony 实体

教义 resultCache 打破了实体删除

如何在 symfony 2 和教义 2 中自定义 sql 日志?

教义 2 集合未连接或填充

Symfony ArrayCollection

在 ArrayCollection 中移动元素 - FLEX