/** @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;
}
下面是从Second
类考虑ArrayCollection $secondList
元素的问题。 Second
ManyToOne关系正常工作。也许我在初始化持久性方面做了错误(因为SQL基础中的First_Id
始终是null
)。学说2:一对多关系
$first = new Second();
$second = new First();
$first->getSecond()->add($second);
$em->persist($second);
$em->persist($first);
有什么建议吗?
好吧,这真的帮助我设置第二个表记录中的First_Id列。但是,试图获取First类对象并不会将Second取到“ArrayCollection”。我只有空集合:| –
所以在数据库中一切都很好?你如何获取这些东西?你如何检查你有什么?因为当你调用$ first-> getSecond()时,它应该加载它。 – Pinetree
事实上,这就是我要做的。 DB是好的(最终模式是由doctrine tool-kit创建的)。我使用来自'EntityManager'类的find()或getRepository()方法获取对象。对象被正确创建,即使我只有'Second'类对象,我与'First'相关的类对象有充分的关系。噢,我用'serialize($ first-> getSecondList() - > current())'检查这个列表,'$ takedSecond-> getSomeOtherValue()'显示错误在非对象变量上使用方法。 –