我有2个实体:OwnerProperty,OwnerPropertyIntl。我声明了OwnerProperty和OwnerPropertyIntl之间的关系。
我使用这个命令php app/console doctrine:schema:validate
,
结果:[Mapping] OK - The mapping files are correct.
但是当我通过
文件OwnerProperty
/**
* One-To-Many, Bidirectional
*
* @var ArrayCollection $ownerPropertyIntl
*
* @ORM\OneToMany(targetEntity="OwnerPropertyIntl", mappedBy="ownerProperty", cascade={"all"})
*/
private $ownerPropertyIntl;
/**
* Add owner_property_intl
*
* @param OwnerPropertyIntl $ownerPropertyIntl
* @return OwnerProperty
*/
public function addOwnerPropertyIntl(OwnerPropertyIntl $ownerPropertyIntl)
{
$this->ownerPropertyIntl[] = $ownerPropertyIntl;
return $this;
}
/**
* Remove owner_property_intl
*
* @param OwnerPropertyIntl $ownerPropertyIntl
*/
public function removePropertyIntl(OwnerPropertyIntl $ownerPropertyIntl)
{
$this->ownerPropertyIntl->removeElement($ownerPropertyIntl);
}
/**
* Get owner_property_intl
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getOwnerPropertyIntl()
{
return $this->ownerPropertyIntl;
}
$ownerProperty = $this->getDoctrine()->getManager()->getRepository('ACMWebBundle:OwnerProperty')->find(123);
ownerPropertyIntl没有数据,尽管数据库有ownerPropertyIntl的4条记录,owner_property_id = 123.
请帮帮我。
答案 0 :(得分:2)
您必须按照Fracsi的说明调用getOwnerPropertyIntl(),这将触发新的SQL查询,或者您可以在您的关系上设置FETCH = EAGER,这也将始终拉出第二个实体。 提供了一个示例here
除非你真的想要延迟加载,否则你应该总是使用急切策略。