/** @Entity */
class First
{
/** @OneToMany(targetEntity="Second", mappedBy="parent") */
protected $secondList;
// access methods here
public function __construct()
{
$this->secondList = new ArrayCollection();
}
}
/** @Entity */
class Second
{
/**
* @ManyToOne(targetEntity="First", inversedBy="secondList")
* @JoinColumn(name="First_id", referencedColumnName="Id")
*/
protected $parent;
}
这是从类中获取ArrayCollection $secondList
元素的问题Second
。 Second
多对一关系工作正常。也许我在初始化持久性时做错了什么(因为 SQL 数据库中First_Id
总是null
)。
$first = new Second();
$second = new First();
$first->getSecond()->add($second);
$em->persist($second);
$em->persist($first);
有什么建议吗?
Doctrine2 文档是这样说的:
In the case of bi-directional associations you have to update the fields on both sides:
这意味着您必须执行以下操作:
$second->setParent($first);
因为$second
表有外键。或者,您可以向$first->secondList
属性添加cascade={"persist"}
选项。
您应该确保在头等舱中关闭括号。
/** @OneToMany(targetEntity = "Second", mappedBy = "parent" ) */
如果这不是问题 - 是否有任何错误消息?