教义2:一对多关系


/** @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元素的问题SecondSecond多对一关系工作正常。也许我在初始化持久性时做错了什么(因为 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" ) */

如果这不是问题 - 是否有任何错误消息?

相关内容

  • 没有找到相关文章

最新更新